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
Clifford RimUnited KingdomXuxue Feng RENEWAL
Jennifer AmigonJapanXuxue Feng NEGOTIATION
Cody SaylorsIndiaBernardo Dominic QUALIFIED
Leja CaldareraCanadaElwin Sharvill NEGOTIATION
Chavez BriddickItalyOnyama Limba RENEWAL
Faith GillianItalyAmy Elsner PROPOSAL
Maria MarrierUnited KingdomIvan Magalhaes QUALIFIED
Ivar PaprockiArgentinaAsiya Javayant PROPOSAL
Isabel BowleyAustraliaAnna Fali NEW
Rodrigues CampainGermanyIvan Magalhaes PROPOSAL
David DarakjyJapanAnna Fali UNQUALIFIED
Tony FollerSpainAmy Elsner NEGOTIATION
Greenwood BologniaBrazilBernardo Dominic QUALIFIED
Jennifer AmigonBrazilIoni Bowcher NEW
Emily WhobreyJapanBernardo Dominic RENEWAL
Kadeem FlosiUnited KingdomOnyama Limba UNQUALIFIED
Smith GlickIndiaAmy Elsner UNQUALIFIED
Ashley DoeSpainAsiya Javayant UNQUALIFIED
Rodrigues CampainRussiaAnna Fali PROPOSAL
Wickens NestleCanadaOnyama Limba RENEWAL
Emily WhobreyUnited KingdomAsiya Javayant QUALIFIED
Misaki RoysterUnited KingdomAsiya Javayant UNQUALIFIED
Silvio SlusarskiIndiaXuxue Feng QUALIFIED
Salvatore StockhamItalyBernardo Dominic NEW
Morrow RutaFranceStephen Shaw PROPOSAL
Jeanfrancois VenereSpainElwin Sharvill NEW
Juan WieserArgentinaElwin Sharvill NEGOTIATION
Mayumi KolmetzUnited KingdomAmy Elsner NEGOTIATION
Aruna FigeroaItalyAmy Elsner RENEWAL
Misaki RoysterIndiaIoni Bowcher QUALIFIED
Stacey MacleadGermanyAnna Fali QUALIFIED
Aruna FigeroaItalyAmy Elsner NEW
Cody SaylorsRussiaAsiya Javayant PROPOSAL
Julie StensethGermanyBernardo Dominic NEW
Claire TollnerArgentinaIoni Bowcher PROPOSAL
Octavia MaletRussiaElwin Sharvill NEGOTIATION
Antonio CaudyCanadaXuxue Feng PROPOSAL
Chavez BriddickJapanStephen Shaw PROPOSAL
Kadeem FlosiItalyAmy Elsner UNQUALIFIED
Mayumi KolmetzAustraliaOnyama Limba NEGOTIATION
Juan WieserAustraliaAsiya Javayant PROPOSAL
Wickens NestleGermanyOnyama Limba QUALIFIED
Kadeem FlosiUnited KingdomElwin Sharvill NEW
James ButtIndiaAmy Elsner UNQUALIFIED
Chavez BriddickCanadaAmy Elsner UNQUALIFIED
Tony FollerJapanAnna Fali RENEWAL
Jones VocelkaCanadaAsiya Javayant NEW
Darci PoquetteGermanyAsiya Javayant UNQUALIFIED
Claire TollnerIndiaAmy Elsner UNQUALIFIED
Costa DilliardGermanyIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Izzy GarufiFranceAnna Fali UNQUALIFIED
Wickens NestleIndiaBernardo Dominic UNQUALIFIED
Juan WieserItalyAnna Fali QUALIFIED
Sinclair WaycottCanadaAmy Elsner QUALIFIED
Mujtaba NickaCanadaAnna Fali RENEWAL
Isabel BowleyCanadaBernardo Dominic UNQUALIFIED
James ButtCanadaOnyama Limba PROPOSAL
Antonio CaudyBrazilAmy Elsner UNQUALIFIED
Kaitlin OstroskyBrazilAnna Fali NEW
Maria MarrierArgentinaAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoUnited Kingdom2025-10-17Benton, John B Jr UNQUALIFIED44Anna Fali
1001Isabel BowleyArgentina2025-10-14Benton, John B Jr UNQUALIFIED0Asiya Javayant
1002Leon OldroydAustralia2025-10-14Morlong Associates PROPOSAL41Anna Fali
1003Stacey MacleadArgentina2025-10-14King, Christopher A Esq NEW4Bernardo Dominic
1004Kaitlin OstroskyIndia2025-10-04Truhlar And Truhlar Attys UNQUALIFIED17Ivan Magalhaes
1005Munro FerenczSpain2025-10-01Printing Dimensions NEGOTIATION64Xuxue Feng
1006Aditya KuskoGermany2025-10-18Morlong Associates NEW13Xuxue Feng
1007Adams MorascaUnited Kingdom2025-10-17Buckley Miller Wright QUALIFIED49Bernardo Dominic
1008Smith GlickFrance2025-10-02Buckley Miller Wright PROPOSAL66Onyama Limba
1009Johnson SergiBrazil2025-10-14Dorl, James J Esq NEW38Bernardo Dominic
1010Aruna FigeroaAustralia2025-10-08Chanay, Jeffrey A Esq NEW8Anna Fali
1011Deepesh ChuiRussia2025-10-01Rousseaux, Michael Esq UNQUALIFIED50Anna Fali
1012Adams MorascaFrance2025-10-02Rousseaux, Michael Esq PROPOSAL92Anna Fali
1013Leja CaldareraFrance2025-09-23King, Christopher A Esq QUALIFIED86Ivan Magalhaes
1014Aditya KuskoAustralia2025-10-07Truhlar And Truhlar Attys NEGOTIATION60Stephen Shaw
1015Claire TollnerArgentina2025-09-27Chanay, Jeffrey A Esq RENEWAL21Xuxue Feng
1016Jefferson SchemmerUnited Kingdom2025-10-11Feltz Printing Service NEW48Elwin Sharvill
1017Aditya KuskoUnited Kingdom2025-10-04Commercial Press QUALIFIED43Bernardo Dominic
1018Octavia MaletGermany2025-10-18Feiner Bros UNQUALIFIED4Onyama Limba
1019James ButtGermany2025-10-06Commercial Press UNQUALIFIED21Ivan Magalhaes
1020James ButtRussia2025-10-03Chapman, Ross E Esq NEW23Amy Elsner
1021Claire TollnerSpain2025-10-09Dorl, James J Esq RENEWAL31Elwin Sharvill
1022Aruna FigeroaBrazil2025-10-19Printing Dimensions NEW37Asiya Javayant
1023Murillo MaletArgentina2025-10-08Truhlar And Truhlar Attys QUALIFIED66Amy Elsner
1024Octavia MaletItaly2025-09-28Rangoni Of Florence QUALIFIED85Ivan Magalhaes
1025Maisha RulapaughFrance2025-10-19King, Christopher A Esq RENEWAL75Elwin Sharvill
1026Salvatore StockhamIndia2025-10-18Rangoni Of Florence NEGOTIATION65Anna Fali
1027Aika InouyeFrance2025-09-24King, Christopher A Esq RENEWAL92Bernardo Dominic
1028Misaki RoysterCanada2025-09-24Dorl, James J Esq UNQUALIFIED82Anna Fali
1029James ButtArgentina2025-10-04Chemel, James L Cpa RENEWAL16Stephen Shaw
1030Wickens NestleArgentina2025-09-22Feiner Bros NEW32Elwin Sharvill
1031Kaitlin OstroskyUnited Kingdom2025-09-25Rangoni Of Florence PROPOSAL13Bernardo Dominic
1032Faith GillianJapan2025-09-25Dorl, James J Esq NEW73Elwin Sharvill
1033Ashley DoeArgentina2025-09-30Chapman, Ross E Esq RENEWAL42Ivan Magalhaes
1034Tony FollerItaly2025-10-19Commercial Press NEW10Bernardo Dominic
1035Morrow RutaItaly2025-10-18Feltz Printing Service NEGOTIATION55Amy Elsner
1036Johnson SergiArgentina2025-09-27King, Christopher A Esq PROPOSAL57Anna Fali
1037Tony FollerUnited Kingdom2025-10-16Chanay, Jeffrey A Esq NEGOTIATION19Asiya Javayant
1038Nicolas IturbideItaly2025-10-14Morlong Associates NEGOTIATION21Asiya Javayant
1039Octavia MaletItaly2025-10-18Feiner Bros PROPOSAL23Ivan Magalhaes
1040Jennifer AmigonUnited Kingdom2025-09-24Dorl, James J Esq UNQUALIFIED86Xuxue Feng
1041Mujtaba NickaArgentina2025-10-07Morlong Associates PROPOSAL20Ioni Bowcher
1042Nicolas IturbideUnited Kingdom2025-10-13Chemel, James L Cpa PROPOSAL0Ivan Magalhaes
1043Aditya KuskoRussia2025-10-02Feltz Printing Service QUALIFIED18Anna Fali
1044Greenwood BologniaSpain2025-10-19Chanay, Jeffrey A Esq NEGOTIATION7Stephen Shaw
1045Munro FerenczJapan2025-10-15Truhlar And Truhlar Attys PROPOSAL46Stephen Shaw
1046Morrow RutaCanada2025-09-21Dorl, James J Esq QUALIFIED34Bernardo Dominic
1047Isabel BowleyIndia2025-09-27Rousseaux, Michael Esq NEW58Bernardo Dominic
1048Isabel BowleyFrance2025-09-25Rangoni Of Florence NEW36Ioni Bowcher
1049Aditya KuskoArgentina2025-10-13Morlong Associates NEW26Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Leon OldroydIndiaAnna Fali NEW
Costa DilliardJapanAsiya Javayant RENEWAL
Smith GlickRussiaOnyama Limba NEW
Munro FerenczRussiaAsiya Javayant PROPOSAL
Jeanfrancois VenereCanadaIvan Magalhaes RENEWAL
Morrow RutaItalyAnna Fali NEW
Kaitlin OstroskyAustraliaAsiya Javayant QUALIFIED
Morrow RutaUnited KingdomElwin Sharvill PROPOSAL
Francesco ShinkoJapanAmy Elsner QUALIFIED
Ivar PaprockiBrazilElwin Sharvill PROPOSAL
Jeanfrancois VenereSpainAsiya Javayant UNQUALIFIED
Ivar PaprockiItalyStephen Shaw NEGOTIATION
Wickens NestleCanadaStephen Shaw QUALIFIED
Silvio SlusarskiSpainBernardo Dominic RENEWAL
Murillo MaletJapanAnna Fali UNQUALIFIED
Kadeem FlosiBrazilAsiya Javayant RENEWAL
Darci PoquetteArgentinaIvan Magalhaes NEW
Silvio SlusarskiItalyIoni Bowcher UNQUALIFIED
Rodrigues CampainCanadaAmy Elsner UNQUALIFIED
Rodrigues CampainBrazilAmy Elsner NEW
Octavia MaletIndiaAmy Elsner NEGOTIATION
Stacey MacleadUnited KingdomOnyama Limba NEW
Smith GlickJapanXuxue Feng UNQUALIFIED
Isabel BowleyRussiaStephen Shaw PROPOSAL
Johnson SergiUnited KingdomAsiya Javayant NEW
Adams MorascaArgentinaBernardo Dominic PROPOSAL
Rodrigues CampainCanadaAnna Fali NEW
Ivar PaprockiRussiaXuxue Feng PROPOSAL
Johnson SergiJapanElwin Sharvill NEW
Tony FollerJapanAnna Fali NEGOTIATION
Kaitlin OstroskyGermanyAmy Elsner NEW
Aika InouyeAustraliaOnyama Limba NEGOTIATION
Nicolas IturbideJapanOnyama Limba UNQUALIFIED
Clifford RimRussiaElwin Sharvill NEGOTIATION
Mayumi KolmetzRussiaElwin Sharvill NEW
Jones VocelkaCanadaAmy Elsner UNQUALIFIED
Nicolas IturbideFranceAsiya Javayant UNQUALIFIED
Nicolas IturbideRussiaAsiya Javayant UNQUALIFIED
Jefferson SchemmerUnited KingdomAnna Fali NEW
Ashley DoeUnited KingdomBernardo Dominic NEGOTIATION
Clifford RimAustraliaStephen Shaw UNQUALIFIED
Silvio SlusarskiAustraliaBernardo Dominic QUALIFIED
Emily WhobreyBrazilStephen Shaw NEW
Juan WieserItalyAnna Fali PROPOSAL
Rodrigues CampainFranceIvan Magalhaes NEGOTIATION
Munro FerenczIndiaBernardo Dominic UNQUALIFIED
Aika InouyeBrazilOnyama Limba QUALIFIED
Maisha RulapaughItalyStephen Shaw RENEWAL
Ricardo GauchoAustraliaAsiya Javayant RENEWAL
Stacey MacleadItalyStephen Shaw QUALIFIED
Frozen Columns
Name
David Darakjy
Ricardo Gaucho
Julie Stenseth
Alejandro Perin
Greenwood Bolognia
Emily Whobrey
Chavez Briddick
Maria Marrier
Isabel Bowley
Johnson Sergi
Misaki Royster
Costa Dilliard
Sinclair Waycott
Izzy Garufi
Chavez Briddick
Smith Glick
Stacey Maclead
Johnson Sergi
Chavez Briddick
Aika Inouye
Emily Whobrey
Mujtaba Nicka
Maisha Rulapaugh
Jones Vocelka
Ashley Doe
Salvatore Stockham
Clifford Rim
Adams Morasca
Aditya Kusko
Nicolas Iturbide
Ivar Paprocki
Arvin Albares
Munro Ferencz
Jennifer Amigon
Leon Oldroyd
Claire Tollner
Jones Vocelka
Francesco Shinko
Mujtaba Nicka
Kadeem Flosi
Arvin Albares
Sinclair Waycott
Izzy Garufi
Jennifer Amigon
Octavia Malet
Julie Stenseth
Greenwood Bolognia
Alejandro Perin
Darci Poquette
Cody Saylors
IdCountryDate
1000Argentina2025-10-12
1001France2025-09-29
1002France2025-09-28
1003France2025-09-30
1004Australia2025-10-15
1005Brazil2025-09-25
1006Russia2025-10-19
1007Germany2025-10-01
1008Brazil2025-10-10
1009United Kingdom2025-09-27
1010Russia2025-10-10
1011Canada2025-10-06
1012Japan2025-09-29
1013Spain2025-10-10
1014Canada2025-10-02
1015India2025-10-07
1016United Kingdom2025-10-18
1017France2025-10-12
1018Spain2025-09-22
1019France2025-10-17
1020Russia2025-10-15
1021Argentina2025-10-17
1022Italy2025-10-01
1023Japan2025-10-06
1024United Kingdom2025-10-16
1025India2025-09-25
1026Canada2025-09-24
1027Australia2025-09-28
1028United Kingdom2025-10-09
1029Russia2025-09-27
1030France2025-10-11
1031United Kingdom2025-10-10
1032Australia2025-10-09
1033Argentina2025-10-07
1034Germany2025-10-13
1035Germany2025-09-21
1036Australia2025-09-24
1037Russia2025-10-17
1038Japan2025-09-21
1039Australia2025-10-12
1040Italy2025-10-16
1041India2025-10-01
1042Japan2025-10-02
1043France2025-09-27
1044France2025-09-25
1045France2025-10-19
1046India2025-10-03
1047Spain2025-10-12
1048Argentina2025-10-10
1049Spain2025-10-05

On-Demand Data

NameIdCountryDate
Aruna Figeroa1000Germany2025-09-23
Ivar Paprocki1001Japan2025-09-24
Darci Poquette1002Italy2025-10-02
Francesco Shinko1003Russia2025-10-19
Ricardo Gaucho1004United Kingdom2025-10-03
Nicolas Iturbide1005Italy2025-10-16
Jefferson Schemmer1006Argentina2025-10-03
Chavez Briddick1007Italy2025-10-09
Aika Inouye1008Spain2025-10-14
Morrow Ruta1009Russia2025-10-15
Alejandro Perin1010India2025-10-03
Leja Caldarera1011United Kingdom2025-09-29
Faith Gillian1012Russia2025-09-28
Greenwood Bolognia1013Russia2025-09-22
Jeanfrancois Venere1014United Kingdom2025-10-05
Emily Whobrey1015Spain2025-09-20
Munro Ferencz1016Australia2025-10-03
Greenwood Bolognia1017United Kingdom2025-09-23
Juan Wieser1018Brazil2025-10-18
Cody Saylors1019Spain2025-09-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa DilliardJapanAmy Elsner QUALIFIED
David DarakjyItalyAsiya Javayant UNQUALIFIED
Mayumi KolmetzJapanIvan Magalhaes UNQUALIFIED
Rodrigues CampainSpainAsiya Javayant QUALIFIED
Aditya KuskoArgentinaOnyama Limba QUALIFIED
Izzy GarufiBrazilElwin Sharvill NEGOTIATION
Morrow RutaIndiaIvan Magalhaes NEW
Kaitlin OstroskyAustraliaAnna Fali RENEWAL
Sinclair WaycottGermanyStephen Shaw UNQUALIFIED
Nicolas IturbideRussiaXuxue Feng NEW
Aika InouyeUnited KingdomBernardo Dominic QUALIFIED
Mujtaba NickaUnited KingdomAnna Fali UNQUALIFIED
Salvatore StockhamFranceAmy Elsner NEW
Chavez BriddickBrazilOnyama Limba QUALIFIED
Claire TollnerArgentinaStephen Shaw UNQUALIFIED
David DarakjyAustraliaStephen Shaw RENEWAL
Arvin AlbaresCanadaAnna Fali PROPOSAL
Chavez BriddickAustraliaAnna Fali UNQUALIFIED
Aika InouyeRussiaBernardo Dominic NEW
Darci PoquetteCanadaAnna Fali NEW
Juan WieserCanadaAsiya Javayant RENEWAL
Cody SaylorsArgentinaAsiya Javayant UNQUALIFIED
Costa DilliardFranceAmy Elsner RENEWAL
Wickens NestleSpainAmy Elsner RENEWAL
Kaitlin OstroskySpainStephen Shaw NEGOTIATION
Costa DilliardJapanStephen Shaw QUALIFIED
Murillo MaletSpainIvan Magalhaes NEGOTIATION
Faith GillianIndiaBernardo Dominic NEGOTIATION
Silvio SlusarskiAustraliaIoni Bowcher NEGOTIATION
Octavia MaletJapanIvan Magalhaes PROPOSAL
Antonio CaudyBrazilAnna Fali PROPOSAL
Maria MarrierItalyAsiya Javayant NEGOTIATION
Kadeem FlosiIndiaAnna Fali QUALIFIED
Kadeem FlosiSpainAmy Elsner NEW
Chavez BriddickFranceXuxue Feng NEW
Rodrigues CampainArgentinaAsiya Javayant NEW
Jones VocelkaJapanAnna Fali QUALIFIED
Izzy GarufiAustraliaAsiya Javayant UNQUALIFIED
Isabel BowleyRussiaOnyama Limba PROPOSAL
Aruna FigeroaCanadaAsiya Javayant NEGOTIATION

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