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
Maisha RulapaughItalyAsiya Javayant RENEWAL
David DarakjyFranceAnna Fali QUALIFIED
Jones VocelkaAustraliaIvan Magalhaes NEW
Aditya KuskoItalyAsiya Javayant PROPOSAL
Aika InouyeCanadaBernardo Dominic UNQUALIFIED
Mujtaba NickaJapanIvan Magalhaes UNQUALIFIED
Deepesh ChuiJapanOnyama Limba PROPOSAL
Maria MarrierArgentinaOnyama Limba QUALIFIED
Claire TollnerArgentinaXuxue Feng QUALIFIED
Mujtaba NickaGermanyAnna Fali UNQUALIFIED
Adams MorascaIndiaIoni Bowcher RENEWAL
Mujtaba NickaJapanAnna Fali QUALIFIED
Darci PoquetteArgentinaAnna Fali QUALIFIED
Jennifer AmigonItalyAmy Elsner NEGOTIATION
Jefferson SchemmerJapanBernardo Dominic PROPOSAL
Jeanfrancois VenereCanadaBernardo Dominic PROPOSAL
Octavia MaletSpainStephen Shaw RENEWAL
Emily WhobreyIndiaXuxue Feng QUALIFIED
Juan WieserFranceElwin Sharvill RENEWAL
Leon OldroydItalyAnna Fali QUALIFIED
Murillo MaletJapanOnyama Limba NEGOTIATION
Antonio CaudyFranceIvan Magalhaes PROPOSAL
Misaki RoysterRussiaXuxue Feng UNQUALIFIED
Claire TollnerRussiaElwin Sharvill NEW
Maisha RulapaughSpainXuxue Feng RENEWAL
Smith GlickSpainXuxue Feng RENEWAL
Clifford RimRussiaIoni Bowcher NEW
Izzy GarufiAustraliaIvan Magalhaes UNQUALIFIED
Antonio CaudyJapanAmy Elsner RENEWAL
Leon OldroydRussiaAmy Elsner NEW
Jennifer AmigonRussiaOnyama Limba NEW
Claire TollnerSpainAsiya Javayant RENEWAL
Maisha RulapaughIndiaAsiya Javayant NEGOTIATION
Ricardo GauchoJapanBernardo Dominic UNQUALIFIED
Costa DilliardCanadaAnna Fali UNQUALIFIED
Morrow RutaUnited KingdomIoni Bowcher PROPOSAL
Chavez BriddickArgentinaBernardo Dominic UNQUALIFIED
Ashley DoeCanadaAmy Elsner QUALIFIED
Jones VocelkaCanadaStephen Shaw PROPOSAL
Mujtaba NickaAustraliaOnyama Limba NEGOTIATION
Kadeem FlosiIndiaOnyama Limba UNQUALIFIED
Murillo MaletRussiaAmy Elsner UNQUALIFIED
Arvin AlbaresAustraliaOnyama Limba NEGOTIATION
Darci PoquetteRussiaIvan Magalhaes NEW
Deepesh ChuiCanadaIvan Magalhaes NEW
Jefferson SchemmerUnited KingdomStephen Shaw UNQUALIFIED
Costa DilliardRussiaOnyama Limba PROPOSAL
Izzy GarufiCanadaBernardo Dominic PROPOSAL
Juan WieserArgentinaAnna Fali RENEWAL
Salvatore StockhamItalyOnyama Limba QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia MaletItalyIoni Bowcher PROPOSAL
Adams MorascaCanadaIoni Bowcher RENEWAL
Stacey MacleadAustraliaOnyama Limba UNQUALIFIED
Munro FerenczRussiaAmy Elsner NEGOTIATION
Emily WhobreySpainAmy Elsner UNQUALIFIED
Chavez BriddickUnited KingdomOnyama Limba UNQUALIFIED
Misaki RoysterJapanAmy Elsner UNQUALIFIED
Salvatore StockhamGermanyBernardo Dominic PROPOSAL
Ashley DoeJapanOnyama Limba NEGOTIATION
Kadeem FlosiSpainBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues CampainCanada2026-05-13Benton, John B Jr NEW76Anna Fali
1001Greenwood BologniaArgentina2026-05-21Feltz Printing Service NEW38Stephen Shaw
1002Deepesh ChuiGermany2026-05-13King, Christopher A Esq NEGOTIATION73Xuxue Feng
1003Aika InouyeJapan2026-06-04Dorl, James J Esq NEW53Elwin Sharvill
1004Maisha RulapaughIndia2026-05-29King, Christopher A Esq NEW33Elwin Sharvill
1005Tony FollerIndia2026-05-11Morlong Associates QUALIFIED43Asiya Javayant
1006Tony FollerSpain2026-05-14King, Christopher A Esq UNQUALIFIED56Ioni Bowcher
1007Aditya KuskoJapan2026-05-19Feltz Printing Service QUALIFIED43Bernardo Dominic
1008Kadeem FlosiAustralia2026-05-24Chanay, Jeffrey A Esq RENEWAL24Amy Elsner
1009Faith GillianItaly2026-05-28Rousseaux, Michael Esq NEW33Ioni Bowcher
1010Claire TollnerGermany2026-05-15Rousseaux, Michael Esq QUALIFIED9Onyama Limba
1011Wickens NestleArgentina2026-05-14Truhlar And Truhlar Attys NEGOTIATION16Ivan Magalhaes
1012Johnson SergiIndia2026-05-11Truhlar And Truhlar Attys UNQUALIFIED84Ivan Magalhaes
1013Rodrigues CampainIndia2026-06-02Feiner Bros PROPOSAL42Asiya Javayant
1014David DarakjySpain2026-05-21Chanay, Jeffrey A Esq NEW36Ivan Magalhaes
1015Deepesh ChuiGermany2026-05-10Truhlar And Truhlar Attys PROPOSAL28Xuxue Feng
1016James ButtUnited Kingdom2026-05-23Feltz Printing Service QUALIFIED11Xuxue Feng
1017Cody SaylorsAustralia2026-06-04Chapman, Ross E Esq UNQUALIFIED93Asiya Javayant
1018Julie StensethRussia2026-05-29Dorl, James J Esq RENEWAL37Bernardo Dominic
1019Mujtaba NickaUnited Kingdom2026-05-11Morlong Associates UNQUALIFIED52Asiya Javayant
1020Adams MorascaSpain2026-06-03Printing Dimensions QUALIFIED58Stephen Shaw
1021Salvatore StockhamJapan2026-05-26Feltz Printing Service QUALIFIED16Bernardo Dominic
1022Izzy GarufiAustralia2026-06-05Chanay, Jeffrey A Esq UNQUALIFIED79Elwin Sharvill
1023Izzy GarufiCanada2026-05-24Printing Dimensions PROPOSAL34Ivan Magalhaes
1024Stacey MacleadJapan2026-05-31Feiner Bros NEGOTIATION62Bernardo Dominic
1025Emily WhobreyBrazil2026-05-27Rangoni Of Florence PROPOSAL68Ivan Magalhaes
1026Costa DilliardIndia2026-05-07Buckley Miller Wright NEW77Amy Elsner
1027Deepesh ChuiAustralia2026-06-01Buckley Miller Wright RENEWAL49Asiya Javayant
1028Murillo MaletBrazil2026-06-02Feiner Bros PROPOSAL60Bernardo Dominic
1029Kadeem FlosiCanada2026-05-11Printing Dimensions NEGOTIATION30Asiya Javayant
1030Kadeem FlosiGermany2026-05-12Dorl, James J Esq PROPOSAL99Ivan Magalhaes
1031Claire TollnerFrance2026-05-13Benton, John B Jr QUALIFIED56Amy Elsner
1032Wickens NestleRussia2026-06-01Printing Dimensions QUALIFIED3Amy Elsner
1033Clifford RimRussia2026-05-17Commercial Press PROPOSAL28Ioni Bowcher
1034Mujtaba NickaUnited Kingdom2026-05-30Buckley Miller Wright NEGOTIATION58Ivan Magalhaes
1035Greenwood BologniaSpain2026-06-05Printing Dimensions PROPOSAL8Onyama Limba
1036Octavia MaletItaly2026-05-17Rousseaux, Michael Esq NEGOTIATION38Ioni Bowcher
1037Greenwood BologniaGermany2026-05-30Truhlar And Truhlar Attys PROPOSAL6Stephen Shaw
1038Wickens NestleItaly2026-06-01Benton, John B Jr QUALIFIED18Bernardo Dominic
1039Mayumi KolmetzFrance2026-05-17Truhlar And Truhlar Attys RENEWAL95Amy Elsner
1040Aruna FigeroaRussia2026-06-02Feiner Bros NEGOTIATION63Elwin Sharvill
1041Maria MarrierRussia2026-05-22Benton, John B Jr RENEWAL93Asiya Javayant
1042Deepesh ChuiUnited Kingdom2026-05-12Morlong Associates RENEWAL23Bernardo Dominic
1043Tony FollerUnited Kingdom2026-05-10Rangoni Of Florence QUALIFIED14Ioni Bowcher
1044Clifford RimJapan2026-05-20Morlong Associates NEGOTIATION36Elwin Sharvill
1045Claire TollnerItaly2026-05-25Chanay, Jeffrey A Esq NEGOTIATION19Ivan Magalhaes
1046Rodrigues CampainUnited Kingdom2026-05-27Feltz Printing Service NEGOTIATION21Bernardo Dominic
1047Leja CaldareraIndia2026-06-01Feltz Printing Service NEGOTIATION56Bernardo Dominic
1048Jefferson SchemmerCanada2026-05-17Chemel, James L Cpa RENEWAL81Ioni Bowcher
1049Julie StensethJapan2026-05-27Morlong Associates NEGOTIATION37Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Juan WieserArgentinaIvan Magalhaes NEGOTIATION
Jefferson SchemmerArgentinaIvan Magalhaes QUALIFIED
Izzy GarufiBrazilBernardo Dominic NEGOTIATION
Salvatore StockhamGermanyOnyama Limba RENEWAL
Tony FollerItalyStephen Shaw NEGOTIATION
David DarakjySpainOnyama Limba NEGOTIATION
Nicolas IturbideArgentinaStephen Shaw NEW
David DarakjyFranceBernardo Dominic UNQUALIFIED
Deepesh ChuiIndiaAnna Fali QUALIFIED
Ricardo GauchoAustraliaXuxue Feng RENEWAL
Mayumi KolmetzRussiaIvan Magalhaes NEGOTIATION
Francesco ShinkoArgentinaAsiya Javayant QUALIFIED
Mayumi KolmetzItalyAsiya Javayant NEGOTIATION
Murillo MaletBrazilXuxue Feng UNQUALIFIED
Maria MarrierSpainBernardo Dominic NEW
Munro FerenczIndiaAsiya Javayant RENEWAL
Francesco ShinkoSpainAsiya Javayant RENEWAL
Maria MarrierItalyOnyama Limba QUALIFIED
Johnson SergiSpainOnyama Limba NEGOTIATION
Greenwood BologniaArgentinaBernardo Dominic QUALIFIED
Ashley DoeFranceIvan Magalhaes UNQUALIFIED
Kadeem FlosiBrazilBernardo Dominic PROPOSAL
Murillo MaletItalyIvan Magalhaes NEGOTIATION
Misaki RoysterRussiaAmy Elsner NEW
Maisha RulapaughBrazilIoni Bowcher NEW
Jeanfrancois VenereUnited KingdomAnna Fali QUALIFIED
Clifford RimJapanAsiya Javayant NEW
Smith GlickGermanyAmy Elsner UNQUALIFIED
Faith GillianJapanElwin Sharvill UNQUALIFIED
Aika InouyeCanadaBernardo Dominic RENEWAL
Jefferson SchemmerArgentinaAnna Fali UNQUALIFIED
Murillo MaletAustraliaElwin Sharvill NEGOTIATION
Mayumi KolmetzSpainXuxue Feng QUALIFIED
Smith GlickRussiaAsiya Javayant QUALIFIED
Wickens NestleCanadaIoni Bowcher QUALIFIED
Morrow RutaCanadaAmy Elsner NEW
Jennifer AmigonCanadaAsiya Javayant QUALIFIED
David DarakjyGermanyIvan Magalhaes NEW
Claire TollnerItalyElwin Sharvill NEW
Rodrigues CampainArgentinaOnyama Limba NEW
Francesco ShinkoSpainAsiya Javayant NEGOTIATION
Maria MarrierItalyStephen Shaw RENEWAL
Cody SaylorsArgentinaAmy Elsner NEW
Rodrigues CampainAustraliaIoni Bowcher QUALIFIED
Aditya KuskoBrazilAsiya Javayant NEW
Jennifer AmigonArgentinaOnyama Limba NEGOTIATION
Jefferson SchemmerJapanXuxue Feng PROPOSAL
Silvio SlusarskiJapanIvan Magalhaes NEGOTIATION
Munro FerenczSpainXuxue Feng RENEWAL
Clifford RimIndiaBernardo Dominic NEW
Frozen Columns
Name
Faith Gillian
Isabel Bowley
Leja Caldarera
Ricardo Gaucho
Kadeem Flosi
Wickens Nestle
Juan Wieser
Ricardo Gaucho
Francesco Shinko
Cody Saylors
Nicolas Iturbide
Greenwood Bolognia
Munro Ferencz
Jennifer Amigon
David Darakjy
Octavia Malet
Murillo Malet
Morrow Ruta
Deepesh Chui
Munro Ferencz
Jefferson Schemmer
Claire Tollner
Nicolas Iturbide
Mujtaba Nicka
Wickens Nestle
Darci Poquette
Alejandro Perin
Jefferson Schemmer
Maisha Rulapaugh
Murillo Malet
Isabel Bowley
David Darakjy
Wickens Nestle
Ricardo Gaucho
Leja Caldarera
Costa Dilliard
Sinclair Waycott
Maisha Rulapaugh
Cody Saylors
Leon Oldroyd
Morrow Ruta
Cody Saylors
James Butt
Francesco Shinko
Johnson Sergi
Leja Caldarera
Chavez Briddick
Leja Caldarera
Faith Gillian
Darci Poquette
IdCountryDate
1000Spain2026-05-14
1001Russia2026-05-30
1002Germany2026-05-23
1003Canada2026-06-02
1004Brazil2026-05-30
1005Russia2026-05-31
1006India2026-05-21
1007France2026-05-14
1008France2026-05-30
1009United Kingdom2026-05-12
1010Japan2026-05-29
1011Argentina2026-05-14
1012Canada2026-05-31
1013United Kingdom2026-05-28
1014France2026-05-08
1015Italy2026-06-04
1016Australia2026-05-27
1017Spain2026-05-13
1018Spain2026-06-02
1019United Kingdom2026-06-05
1020Germany2026-05-28
1021United Kingdom2026-05-22
1022Russia2026-05-31
1023Canada2026-05-29
1024Japan2026-05-29
1025Australia2026-05-16
1026Australia2026-05-11
1027Spain2026-05-08
1028Canada2026-06-02
1029Spain2026-05-10
1030Canada2026-05-14
1031Argentina2026-05-08
1032Australia2026-05-16
1033Argentina2026-06-03
1034Italy2026-05-10
1035Germany2026-05-16
1036Germany2026-05-11
1037Spain2026-05-08
1038Australia2026-06-03
1039Italy2026-05-30
1040Germany2026-05-23
1041Italy2026-05-30
1042Brazil2026-05-24
1043United Kingdom2026-05-07
1044Brazil2026-06-05
1045Germany2026-05-20
1046Russia2026-05-31
1047Spain2026-05-28
1048United Kingdom2026-06-01
1049Germany2026-05-10

On-Demand Data

NameIdCountryDate
Maria Marrier1000Russia2026-05-27
Maisha Rulapaugh1001Brazil2026-06-01
Isabel Bowley1002Italy2026-05-14
Chavez Briddick1003Germany2026-05-14
Maisha Rulapaugh1004Canada2026-05-22
Nicolas Iturbide1005India2026-06-01
David Darakjy1006United Kingdom2026-05-21
Costa Dilliard1007Spain2026-05-22
Mayumi Kolmetz1008Italy2026-05-12
Leon Oldroyd1009Australia2026-05-21
Nicolas Iturbide1010Australia2026-05-10
Tony Foller1011France2026-05-20
Misaki Royster1012Spain2026-06-05
Jefferson Schemmer1013Germany2026-05-08
Tony Foller1014India2026-05-20
Clifford Rim1015Spain2026-05-28
Faith Gillian1016Argentina2026-05-29
Costa Dilliard1017Australia2026-05-17
Mayumi Kolmetz1018India2026-06-01
Kaitlin Ostrosky1019United Kingdom2026-05-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow RutaItalyStephen Shaw QUALIFIED
Morrow RutaUnited KingdomOnyama Limba NEW
Clifford RimJapanIvan Magalhaes NEW
Rodrigues CampainArgentinaBernardo Dominic PROPOSAL
Ricardo GauchoArgentinaStephen Shaw UNQUALIFIED
James ButtFranceStephen Shaw NEW
Ashley DoeCanadaBernardo Dominic PROPOSAL
Aruna FigeroaCanadaIoni Bowcher NEW
Faith GillianFranceElwin Sharvill PROPOSAL
Francesco ShinkoJapanElwin Sharvill UNQUALIFIED
Ricardo GauchoArgentinaElwin Sharvill RENEWAL
Deepesh ChuiCanadaOnyama Limba NEW
Claire TollnerCanadaAnna Fali NEW
Deepesh ChuiGermanyAsiya Javayant QUALIFIED
Johnson SergiUnited KingdomAmy Elsner UNQUALIFIED
Jones VocelkaArgentinaIvan Magalhaes NEW
Adams MorascaAustraliaBernardo Dominic PROPOSAL
David DarakjyIndiaOnyama Limba NEW
Wickens NestleGermanyIoni Bowcher PROPOSAL
Leon OldroydGermanyXuxue Feng RENEWAL
Emily WhobreyBrazilOnyama Limba UNQUALIFIED
Leja CaldareraCanadaStephen Shaw RENEWAL
Kaitlin OstroskyArgentinaElwin Sharvill RENEWAL
Chavez BriddickFranceXuxue Feng NEGOTIATION
Nicolas IturbideFranceAmy Elsner NEGOTIATION
Darci PoquetteSpainStephen Shaw RENEWAL
Nicolas IturbideAustraliaAnna Fali NEGOTIATION
Salvatore StockhamSpainElwin Sharvill QUALIFIED
Wickens NestleIndiaAsiya Javayant PROPOSAL
Chavez BriddickArgentinaXuxue Feng UNQUALIFIED
Smith GlickBrazilAnna Fali RENEWAL
Aika InouyeCanadaBernardo Dominic NEW
Salvatore StockhamBrazilBernardo Dominic QUALIFIED
David DarakjyFranceOnyama Limba RENEWAL
Kaitlin OstroskyJapanOnyama Limba RENEWAL
Isabel BowleyItalyBernardo Dominic PROPOSAL
Alejandro PerinIndiaAnna Fali QUALIFIED
James ButtRussiaAnna Fali NEW
Darci PoquetteGermanyStephen Shaw RENEWAL
Leja CaldareraSpainOnyama Limba 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>