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
Chavez BriddickUnited KingdomXuxue Feng NEW
Aruna FigeroaSpainIoni Bowcher RENEWAL
Claire TollnerGermanyAsiya Javayant UNQUALIFIED
Clifford RimCanadaIvan Magalhaes UNQUALIFIED
Leon OldroydJapanAnna Fali QUALIFIED
Isabel BowleyIndiaAsiya Javayant NEW
James ButtSpainAmy Elsner NEGOTIATION
Arvin AlbaresJapanElwin Sharvill NEGOTIATION
Julie StensethSpainAsiya Javayant NEGOTIATION
Mujtaba NickaAustraliaAmy Elsner NEW
Nicolas IturbideIndiaBernardo Dominic UNQUALIFIED
Rodrigues CampainItalyIvan Magalhaes NEGOTIATION
Wickens NestleRussiaBernardo Dominic NEW
Smith GlickUnited KingdomOnyama Limba NEW
Izzy GarufiFranceAmy Elsner UNQUALIFIED
Deepesh ChuiJapanAmy Elsner PROPOSAL
Chavez BriddickArgentinaXuxue Feng NEW
Cody SaylorsJapanElwin Sharvill PROPOSAL
Leja CaldareraIndiaStephen Shaw QUALIFIED
Adams MorascaArgentinaAmy Elsner NEGOTIATION
Claire TollnerRussiaIvan Magalhaes PROPOSAL
Maria MarrierArgentinaBernardo Dominic PROPOSAL
Sinclair WaycottFranceOnyama Limba UNQUALIFIED
Chavez BriddickArgentinaXuxue Feng NEW
Adams MorascaUnited KingdomXuxue Feng RENEWAL
Clifford RimBrazilAsiya Javayant NEGOTIATION
Cody SaylorsBrazilStephen Shaw NEGOTIATION
Julie StensethSpainAsiya Javayant UNQUALIFIED
Adams MorascaBrazilAnna Fali RENEWAL
Greenwood BologniaBrazilStephen Shaw NEGOTIATION
Murillo MaletAustraliaAsiya Javayant PROPOSAL
Clifford RimFranceIvan Magalhaes UNQUALIFIED
Smith GlickGermanyXuxue Feng NEGOTIATION
Smith GlickFranceElwin Sharvill UNQUALIFIED
Julie StensethCanadaIoni Bowcher RENEWAL
Johnson SergiJapanAmy Elsner UNQUALIFIED
Juan WieserFranceAsiya Javayant QUALIFIED
Isabel BowleyIndiaAsiya Javayant RENEWAL
Ricardo GauchoCanadaIvan Magalhaes PROPOSAL
Nicolas IturbideRussiaOnyama Limba QUALIFIED
Silvio SlusarskiBrazilIvan Magalhaes QUALIFIED
Chavez BriddickFranceIvan Magalhaes NEW
Munro FerenczArgentinaAsiya Javayant UNQUALIFIED
Silvio SlusarskiFranceAsiya Javayant RENEWAL
Antonio CaudyUnited KingdomBernardo Dominic PROPOSAL
Antonio CaudyUnited KingdomAnna Fali QUALIFIED
Ashley DoeBrazilAmy Elsner UNQUALIFIED
Clifford RimIndiaAsiya Javayant QUALIFIED
Isabel BowleyGermanyBernardo Dominic RENEWAL
Wickens NestleAustraliaAsiya Javayant PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Silvio SlusarskiCanadaAsiya Javayant NEW
Darci PoquetteItalyIvan Magalhaes PROPOSAL
Silvio SlusarskiItalyIvan Magalhaes NEW
Izzy GarufiGermanyXuxue Feng UNQUALIFIED
Sinclair WaycottArgentinaAnna Fali NEW
Maria MarrierRussiaStephen Shaw QUALIFIED
Mujtaba NickaIndiaXuxue Feng RENEWAL
Mujtaba NickaBrazilAnna Fali NEGOTIATION
Maria MarrierCanadaStephen Shaw QUALIFIED
Arvin AlbaresGermanyAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Silvio SlusarskiArgentina2026-04-25Printing Dimensions QUALIFIED76Anna Fali
1001Munro FerenczGermany2026-04-14Feltz Printing Service NEW58Ioni Bowcher
1002Faith GillianUnited Kingdom2026-04-23Feltz Printing Service NEW56Elwin Sharvill
1003Alejandro PerinAustralia2026-04-28Printing Dimensions PROPOSAL67Amy Elsner
1004Silvio SlusarskiIndia2026-05-01King, Christopher A Esq NEW32Anna Fali
1005Kadeem FlosiSpain2026-04-16Truhlar And Truhlar Attys NEGOTIATION52Asiya Javayant
1006Aruna FigeroaIndia2026-04-05Chanay, Jeffrey A Esq UNQUALIFIED47Anna Fali
1007Maisha RulapaughArgentina2026-04-27Benton, John B Jr NEGOTIATION72Onyama Limba
1008Clifford RimJapan2026-05-01Truhlar And Truhlar Attys UNQUALIFIED89Amy Elsner
1009Francesco ShinkoSpain2026-04-26Buckley Miller Wright QUALIFIED96Xuxue Feng
1010Jones VocelkaJapan2026-04-19Chapman, Ross E Esq RENEWAL55Onyama Limba
1011Tony FollerArgentina2026-04-08Chanay, Jeffrey A Esq RENEWAL96Xuxue Feng
1012Greenwood BologniaBrazil2026-04-25Chemel, James L Cpa NEGOTIATION38Bernardo Dominic
1013Mayumi KolmetzCanada2026-04-12Chemel, James L Cpa NEGOTIATION20Elwin Sharvill
1014Antonio CaudyAustralia2026-04-27Dorl, James J Esq QUALIFIED59Bernardo Dominic
1015Munro FerenczItaly2026-04-21Chemel, James L Cpa PROPOSAL76Xuxue Feng
1016Stacey MacleadItaly2026-04-12Chanay, Jeffrey A Esq NEGOTIATION78Anna Fali
1017James ButtGermany2026-04-05King, Christopher A Esq RENEWAL61Bernardo Dominic
1018Ashley DoeGermany2026-04-30Rousseaux, Michael Esq PROPOSAL85Ioni Bowcher
1019Ricardo GauchoAustralia2026-05-04Morlong Associates NEW88Anna Fali
1020Costa DilliardIndia2026-04-14Buckley Miller Wright UNQUALIFIED20Onyama Limba
1021Kaitlin OstroskyGermany2026-04-12Commercial Press RENEWAL82Asiya Javayant
1022Clifford RimGermany2026-04-08Commercial Press UNQUALIFIED62Amy Elsner
1023Jennifer AmigonIndia2026-04-07Morlong Associates UNQUALIFIED86Stephen Shaw
1024Stacey MacleadUnited Kingdom2026-05-04Chapman, Ross E Esq PROPOSAL76Anna Fali
1025Octavia MaletGermany2026-04-16Feltz Printing Service PROPOSAL49Anna Fali
1026Rodrigues CampainFrance2026-04-25Chapman, Ross E Esq UNQUALIFIED97Xuxue Feng
1027Morrow RutaItaly2026-05-03Rangoni Of Florence NEW20Xuxue Feng
1028Darci PoquetteBrazil2026-04-18Buckley Miller Wright QUALIFIED46Stephen Shaw
1029Morrow RutaUnited Kingdom2026-04-24Rangoni Of Florence PROPOSAL8Onyama Limba
1030Aruna FigeroaAustralia2026-04-16Feltz Printing Service PROPOSAL46Asiya Javayant
1031Smith GlickItaly2026-04-26Truhlar And Truhlar Attys RENEWAL83Xuxue Feng
1032David DarakjyFrance2026-05-01Chemel, James L Cpa QUALIFIED96Bernardo Dominic
1033Ashley DoeAustralia2026-04-27Buckley Miller Wright UNQUALIFIED34Anna Fali
1034Izzy GarufiCanada2026-05-03Truhlar And Truhlar Attys RENEWAL4Onyama Limba
1035Aditya KuskoRussia2026-04-11Commercial Press PROPOSAL20Ivan Magalhaes
1036Stacey MacleadRussia2026-04-10Chapman, Ross E Esq RENEWAL97Elwin Sharvill
1037Leon OldroydFrance2026-04-10Rangoni Of Florence UNQUALIFIED74Bernardo Dominic
1038Arvin AlbaresBrazil2026-04-05Truhlar And Truhlar Attys UNQUALIFIED24Elwin Sharvill
1039Faith GillianBrazil2026-04-26Feltz Printing Service RENEWAL96Ivan Magalhaes
1040Nicolas IturbideCanada2026-04-08Chanay, Jeffrey A Esq UNQUALIFIED0Amy Elsner
1041Antonio CaudyUnited Kingdom2026-04-08King, Christopher A Esq NEW91Onyama Limba
1042Ricardo GauchoCanada2026-04-28Truhlar And Truhlar Attys PROPOSAL50Xuxue Feng
1043Stacey MacleadCanada2026-04-23Chemel, James L Cpa UNQUALIFIED84Onyama Limba
1044Greenwood BologniaRussia2026-04-23Rousseaux, Michael Esq NEW78Xuxue Feng
1045Sinclair WaycottIndia2026-04-20Dorl, James J Esq PROPOSAL91Stephen Shaw
1046Aditya KuskoAustralia2026-05-04Rousseaux, Michael Esq RENEWAL2Anna Fali
1047Chavez BriddickGermany2026-04-08Dorl, James J Esq NEGOTIATION72Asiya Javayant
1048Costa DilliardJapan2026-04-20Feltz Printing Service RENEWAL92Elwin Sharvill
1049Ashley DoeArgentina2026-04-15Chemel, James L Cpa NEGOTIATION82Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiJapanIoni Bowcher NEW
Juan WieserGermanyBernardo Dominic NEGOTIATION
Chavez BriddickAustraliaAsiya Javayant RENEWAL
James ButtBrazilElwin Sharvill UNQUALIFIED
Mayumi KolmetzJapanBernardo Dominic QUALIFIED
Jennifer AmigonGermanyStephen Shaw NEGOTIATION
Misaki RoysterAustraliaOnyama Limba NEGOTIATION
Jefferson SchemmerJapanStephen Shaw NEW
Ivar PaprockiGermanyOnyama Limba RENEWAL
Faith GillianIndiaAnna Fali QUALIFIED
Aika InouyeSpainStephen Shaw NEW
David DarakjyIndiaIvan Magalhaes NEW
Morrow RutaCanadaXuxue Feng NEGOTIATION
Mujtaba NickaCanadaXuxue Feng RENEWAL
Rodrigues CampainUnited KingdomOnyama Limba QUALIFIED
James ButtIndiaAmy Elsner NEGOTIATION
Francesco ShinkoArgentinaBernardo Dominic RENEWAL
Costa DilliardAustraliaOnyama Limba PROPOSAL
Cody SaylorsCanadaAsiya Javayant UNQUALIFIED
Smith GlickAustraliaElwin Sharvill NEW
Darci PoquetteJapanOnyama Limba UNQUALIFIED
Emily WhobreySpainXuxue Feng QUALIFIED
Faith GillianAustraliaOnyama Limba QUALIFIED
Deepesh ChuiUnited KingdomIvan Magalhaes NEW
Johnson SergiBrazilAmy Elsner UNQUALIFIED
Clifford RimArgentinaIvan Magalhaes PROPOSAL
Costa DilliardIndiaAsiya Javayant RENEWAL
Juan WieserSpainAsiya Javayant UNQUALIFIED
Clifford RimBrazilOnyama Limba NEGOTIATION
Adams MorascaArgentinaIoni Bowcher NEW
Jeanfrancois VenereAustraliaAsiya Javayant NEGOTIATION
Alejandro PerinCanadaOnyama Limba PROPOSAL
Octavia MaletSpainIoni Bowcher UNQUALIFIED
Stacey MacleadSpainXuxue Feng QUALIFIED
Juan WieserItalyAnna Fali RENEWAL
Faith GillianJapanIvan Magalhaes RENEWAL
Julie StensethUnited KingdomIvan Magalhaes PROPOSAL
Antonio CaudyCanadaXuxue Feng PROPOSAL
Johnson SergiBrazilElwin Sharvill UNQUALIFIED
Aruna FigeroaFranceIoni Bowcher RENEWAL
Maisha RulapaughIndiaOnyama Limba RENEWAL
Stacey MacleadFranceIoni Bowcher QUALIFIED
Octavia MaletBrazilAsiya Javayant RENEWAL
Aika InouyeUnited KingdomBernardo Dominic PROPOSAL
Mayumi KolmetzRussiaAmy Elsner UNQUALIFIED
Sinclair WaycottJapanElwin Sharvill NEGOTIATION
Jeanfrancois VenereIndiaStephen Shaw NEW
Kaitlin OstroskyFranceIvan Magalhaes NEW
Emily WhobreyBrazilIvan Magalhaes NEGOTIATION
Aditya KuskoArgentinaAnna Fali RENEWAL
Frozen Columns
Name
Tony Foller
Leja Caldarera
Salvatore Stockham
Maria Marrier
Ricardo Gaucho
Ashley Doe
Nicolas Iturbide
Julie Stenseth
Faith Gillian
Sinclair Waycott
Leja Caldarera
Mujtaba Nicka
Alejandro Perin
Jefferson Schemmer
Chavez Briddick
Faith Gillian
Claire Tollner
Jones Vocelka
Rodrigues Campain
Faith Gillian
Antonio Caudy
Mujtaba Nicka
Misaki Royster
Silvio Slusarski
Chavez Briddick
Johnson Sergi
Deepesh Chui
Arvin Albares
Misaki Royster
Claire Tollner
Greenwood Bolognia
Chavez Briddick
Morrow Ruta
Arvin Albares
Johnson Sergi
Aruna Figeroa
Jennifer Amigon
Leja Caldarera
Aruna Figeroa
Izzy Garufi
Julie Stenseth
Ivar Paprocki
Darci Poquette
Greenwood Bolognia
Jennifer Amigon
Deepesh Chui
Rodrigues Campain
Maria Marrier
Morrow Ruta
Ashley Doe
IdCountryDate
1000Japan2026-04-13
1001Canada2026-04-25
1002Japan2026-05-04
1003Argentina2026-04-30
1004France2026-04-24
1005India2026-04-23
1006Italy2026-04-11
1007Italy2026-04-26
1008Germany2026-04-28
1009United Kingdom2026-05-03
1010Spain2026-04-16
1011Canada2026-04-16
1012Russia2026-04-29
1013United Kingdom2026-04-09
1014United Kingdom2026-04-18
1015France2026-04-13
1016France2026-04-20
1017Spain2026-04-25
1018Argentina2026-04-22
1019Argentina2026-04-12
1020India2026-04-10
1021Spain2026-04-06
1022Italy2026-05-04
1023Brazil2026-04-13
1024Australia2026-04-29
1025Spain2026-04-27
1026Germany2026-04-07
1027Germany2026-05-04
1028Italy2026-04-17
1029Australia2026-04-25
1030Russia2026-04-24
1031France2026-04-26
1032United Kingdom2026-04-30
1033Brazil2026-04-17
1034Italy2026-04-30
1035Russia2026-04-15
1036India2026-04-25
1037Italy2026-04-26
1038Italy2026-04-14
1039Russia2026-05-04
1040France2026-04-05
1041Australia2026-04-15
1042Japan2026-05-02
1043Russia2026-04-20
1044Australia2026-04-28
1045Russia2026-04-26
1046Russia2026-04-14
1047Australia2026-04-17
1048Japan2026-04-26
1049India2026-04-07

On-Demand Data

NameIdCountryDate
Izzy Garufi1000Germany2026-05-01
Smith Glick1001Canada2026-04-20
Ivar Paprocki1002France2026-04-21
Chavez Briddick1003United Kingdom2026-04-28
Cody Saylors1004Japan2026-04-18
Misaki Royster1005United Kingdom2026-04-18
Adams Morasca1006Argentina2026-04-16
Octavia Malet1007Canada2026-04-18
Aruna Figeroa1008India2026-04-21
Darci Poquette1009Italy2026-04-10
Silvio Slusarski1010Japan2026-04-28
Sinclair Waycott1011France2026-04-21
Aditya Kusko1012Italy2026-04-23
Misaki Royster1013Japan2026-04-05
Morrow Ruta1014United Kingdom2026-04-25
Octavia Malet1015Argentina2026-04-13
Costa Dilliard1016France2026-04-26
Arvin Albares1017Canada2026-04-15
Aruna Figeroa1018France2026-04-29
Johnson Sergi1019Argentina2026-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo GauchoArgentinaOnyama Limba NEW
Ricardo GauchoItalyElwin Sharvill NEW
Leon OldroydUnited KingdomIvan Magalhaes UNQUALIFIED
Wickens NestleGermanyAmy Elsner NEW
Aditya KuskoIndiaOnyama Limba NEGOTIATION
Emily WhobreyFranceStephen Shaw UNQUALIFIED
Emily WhobreyBrazilOnyama Limba NEW
Adams MorascaGermanyAmy Elsner NEGOTIATION
Jennifer AmigonItalyStephen Shaw NEGOTIATION
Cody SaylorsUnited KingdomBernardo Dominic PROPOSAL
Chavez BriddickRussiaAnna Fali UNQUALIFIED
Clifford RimArgentinaAsiya Javayant NEW
Darci PoquetteFranceElwin Sharvill RENEWAL
Isabel BowleyJapanAnna Fali NEW
Adams MorascaAustraliaElwin Sharvill PROPOSAL
Arvin AlbaresJapanAsiya Javayant RENEWAL
Alejandro PerinGermanyAsiya Javayant PROPOSAL
Chavez BriddickFranceAsiya Javayant UNQUALIFIED
Jefferson SchemmerGermanyAmy Elsner NEGOTIATION
Julie StensethGermanyAsiya Javayant RENEWAL
Cody SaylorsArgentinaElwin Sharvill UNQUALIFIED
Johnson SergiRussiaAsiya Javayant NEW
Maisha RulapaughArgentinaStephen Shaw UNQUALIFIED
Tony FollerRussiaBernardo Dominic UNQUALIFIED
James ButtSpainIvan Magalhaes UNQUALIFIED
Cody SaylorsGermanyXuxue Feng QUALIFIED
Stacey MacleadRussiaAmy Elsner PROPOSAL
Darci PoquetteAustraliaBernardo Dominic QUALIFIED
Cody SaylorsUnited KingdomElwin Sharvill RENEWAL
Leon OldroydIndiaBernardo Dominic RENEWAL
Aditya KuskoGermanyIvan Magalhaes NEGOTIATION
Adams MorascaJapanXuxue Feng PROPOSAL
Greenwood BologniaItalyElwin Sharvill RENEWAL
Mayumi KolmetzRussiaXuxue Feng NEGOTIATION
James ButtSpainAsiya Javayant NEW
Ricardo GauchoUnited KingdomStephen Shaw NEGOTIATION
Claire TollnerItalyStephen Shaw RENEWAL
Antonio CaudyIndiaIvan Magalhaes RENEWAL
Munro FerenczAustraliaBernardo Dominic RENEWAL
Deepesh ChuiIndiaXuxue Feng PROPOSAL

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