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
Claire TollnerUnited KingdomAsiya Javayant RENEWAL
Claire TollnerItalyOnyama Limba NEW
Jeanfrancois VenereUnited KingdomIoni Bowcher UNQUALIFIED
Aditya KuskoItalyElwin Sharvill NEGOTIATION
Johnson SergiRussiaElwin Sharvill UNQUALIFIED
Arvin AlbaresArgentinaXuxue Feng PROPOSAL
Maria MarrierArgentinaAsiya Javayant PROPOSAL
Julie StensethCanadaStephen Shaw QUALIFIED
Darci PoquetteAustraliaIoni Bowcher QUALIFIED
Munro FerenczArgentinaAsiya Javayant RENEWAL
Chavez BriddickRussiaBernardo Dominic PROPOSAL
Nicolas IturbideArgentinaIoni Bowcher NEW
Ricardo GauchoIndiaStephen Shaw PROPOSAL
Wickens NestleIndiaXuxue Feng UNQUALIFIED
Claire TollnerItalyIvan Magalhaes QUALIFIED
James ButtCanadaOnyama Limba NEW
Jefferson SchemmerUnited KingdomIoni Bowcher NEW
Murillo MaletRussiaIvan Magalhaes QUALIFIED
Aditya KuskoBrazilElwin Sharvill UNQUALIFIED
Leon OldroydFranceXuxue Feng NEGOTIATION
David DarakjyFranceStephen Shaw UNQUALIFIED
Jennifer AmigonArgentinaOnyama Limba PROPOSAL
Izzy GarufiSpainAnna Fali PROPOSAL
Maisha RulapaughRussiaIoni Bowcher PROPOSAL
Aruna FigeroaJapanOnyama Limba NEW
Octavia MaletAustraliaXuxue Feng QUALIFIED
Izzy GarufiAustraliaStephen Shaw NEW
Aika InouyeIndiaAmy Elsner PROPOSAL
Cody SaylorsRussiaElwin Sharvill NEW
Ricardo GauchoSpainAmy Elsner NEGOTIATION
Alejandro PerinFranceIoni Bowcher NEW
Mayumi KolmetzGermanyAsiya Javayant NEW
Salvatore StockhamIndiaAsiya Javayant NEGOTIATION
David DarakjyJapanAsiya Javayant UNQUALIFIED
Silvio SlusarskiSpainAsiya Javayant RENEWAL
Clifford RimGermanyAsiya Javayant UNQUALIFIED
Antonio CaudyFranceOnyama Limba NEW
Aika InouyeItalyIoni Bowcher UNQUALIFIED
Aruna FigeroaRussiaIoni Bowcher PROPOSAL
Greenwood BologniaIndiaElwin Sharvill RENEWAL
Julie StensethCanadaIoni Bowcher UNQUALIFIED
Tony FollerIndiaBernardo Dominic UNQUALIFIED
Antonio CaudyGermanyIoni Bowcher NEW
Jones VocelkaCanadaOnyama Limba RENEWAL
Aditya KuskoJapanIvan Magalhaes RENEWAL
Isabel BowleyAustraliaElwin Sharvill NEGOTIATION
Murillo MaletRussiaAmy Elsner NEGOTIATION
Jefferson SchemmerRussiaXuxue Feng PROPOSAL
Costa DilliardIndiaAnna Fali QUALIFIED
Morrow RutaUnited KingdomIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Arvin AlbaresAustraliaStephen Shaw UNQUALIFIED
Jefferson SchemmerItalyStephen Shaw UNQUALIFIED
Leja CaldareraJapanAmy Elsner RENEWAL
Ivar PaprockiUnited KingdomXuxue Feng RENEWAL
Costa DilliardAustraliaBernardo Dominic QUALIFIED
Francesco ShinkoAustraliaXuxue Feng QUALIFIED
Jeanfrancois VenereFranceAmy Elsner UNQUALIFIED
David DarakjyJapanIvan Magalhaes UNQUALIFIED
Antonio CaudyBrazilAnna Fali RENEWAL
Francesco ShinkoRussiaAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria MarrierIndia2026-05-31Truhlar And Truhlar Attys NEGOTIATION33Ioni Bowcher
1001Kadeem FlosiItaly2026-05-20Morlong Associates NEW81Ioni Bowcher
1002Aditya KuskoIndia2026-06-02Rousseaux, Michael Esq PROPOSAL20Asiya Javayant
1003Kadeem FlosiCanada2026-06-10Feltz Printing Service PROPOSAL17Ioni Bowcher
1004Nicolas IturbideItaly2026-06-02Dorl, James J Esq NEW58Onyama Limba
1005Aika InouyeGermany2026-06-12Chapman, Ross E Esq RENEWAL92Stephen Shaw
1006Rodrigues CampainAustralia2026-05-18Benton, John B Jr QUALIFIED4Anna Fali
1007Leja CaldareraItaly2026-05-29Chapman, Ross E Esq RENEWAL58Ioni Bowcher
1008Chavez BriddickRussia2026-06-01Chapman, Ross E Esq PROPOSAL2Bernardo Dominic
1009Jeanfrancois VenereCanada2026-06-07King, Christopher A Esq NEW44Anna Fali
1010Aditya KuskoIndia2026-05-16Printing Dimensions PROPOSAL69Ioni Bowcher
1011Nicolas IturbideAustralia2026-06-01Buckley Miller Wright NEGOTIATION54Onyama Limba
1012Aditya KuskoRussia2026-06-04Chemel, James L Cpa NEGOTIATION66Ioni Bowcher
1013Izzy GarufiIndia2026-06-09Buckley Miller Wright QUALIFIED34Stephen Shaw
1014Maisha RulapaughRussia2026-06-05Chemel, James L Cpa RENEWAL19Ioni Bowcher
1015Rodrigues CampainGermany2026-06-04Printing Dimensions UNQUALIFIED34Ioni Bowcher
1016Morrow RutaBrazil2026-06-10Benton, John B Jr RENEWAL63Stephen Shaw
1017Mujtaba NickaSpain2026-06-05Rangoni Of Florence PROPOSAL52Xuxue Feng
1018Emily WhobreyAustralia2026-06-11Chapman, Ross E Esq NEW66Amy Elsner
1019Munro FerenczCanada2026-06-03Chapman, Ross E Esq NEGOTIATION63Stephen Shaw
1020Darci PoquetteSpain2026-06-05Truhlar And Truhlar Attys UNQUALIFIED35Anna Fali
1021Claire TollnerRussia2026-06-03Morlong Associates PROPOSAL93Onyama Limba
1022Rodrigues CampainUnited Kingdom2026-05-18Commercial Press UNQUALIFIED91Elwin Sharvill
1023Misaki RoysterBrazil2026-06-04Commercial Press NEGOTIATION84Stephen Shaw
1024David DarakjyUnited Kingdom2026-06-01Commercial Press UNQUALIFIED32Ivan Magalhaes
1025Ivar PaprockiFrance2026-05-24Buckley Miller Wright RENEWAL83Elwin Sharvill
1026Alejandro PerinSpain2026-06-10Rangoni Of Florence UNQUALIFIED56Asiya Javayant
1027Kadeem FlosiIndia2026-06-10Chanay, Jeffrey A Esq QUALIFIED34Anna Fali
1028Juan WieserItaly2026-06-02Commercial Press RENEWAL87Onyama Limba
1029Kadeem FlosiItaly2026-06-06Commercial Press PROPOSAL79Ivan Magalhaes
1030Adams MorascaItaly2026-06-08Commercial Press UNQUALIFIED71Ivan Magalhaes
1031Deepesh ChuiUnited Kingdom2026-05-31Rangoni Of Florence NEGOTIATION78Amy Elsner
1032Johnson SergiBrazil2026-05-26Buckley Miller Wright UNQUALIFIED88Stephen Shaw
1033Sinclair WaycottGermany2026-05-20Feiner Bros RENEWAL83Onyama Limba
1034Maria MarrierUnited Kingdom2026-05-15Morlong Associates NEW4Ioni Bowcher
1035Arvin AlbaresCanada2026-06-07Feltz Printing Service QUALIFIED80Asiya Javayant
1036Kadeem FlosiSpain2026-06-10King, Christopher A Esq NEGOTIATION40Bernardo Dominic
1037Ivar PaprockiCanada2026-05-30Chapman, Ross E Esq PROPOSAL16Xuxue Feng
1038Aditya KuskoItaly2026-05-31Feiner Bros NEW53Anna Fali
1039Alejandro PerinGermany2026-06-12Buckley Miller Wright PROPOSAL22Amy Elsner
1040Alejandro PerinUnited Kingdom2026-05-20Buckley Miller Wright PROPOSAL56Ioni Bowcher
1041Maria MarrierCanada2026-05-17Truhlar And Truhlar Attys RENEWAL4Ivan Magalhaes
1042Leon OldroydRussia2026-05-17Benton, John B Jr NEW34Xuxue Feng
1043Nicolas IturbideArgentina2026-05-26Buckley Miller Wright PROPOSAL96Ioni Bowcher
1044Costa DilliardAustralia2026-05-18Feltz Printing Service UNQUALIFIED32Ioni Bowcher
1045Izzy GarufiAustralia2026-05-23Truhlar And Truhlar Attys UNQUALIFIED77Onyama Limba
1046Izzy GarufiItaly2026-06-09Printing Dimensions PROPOSAL43Bernardo Dominic
1047Jeanfrancois VenereRussia2026-05-19Truhlar And Truhlar Attys NEGOTIATION69Ioni Bowcher
1048Leja CaldareraItaly2026-05-20Chapman, Ross E Esq RENEWAL79Xuxue Feng
1049Chavez BriddickSpain2026-06-07King, Christopher A Esq UNQUALIFIED31Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Emily WhobreyJapanBernardo Dominic UNQUALIFIED
Stacey MacleadAustraliaOnyama Limba NEW
Emily WhobreyItalyIoni Bowcher NEGOTIATION
Clifford RimUnited KingdomStephen Shaw NEW
Claire TollnerSpainIvan Magalhaes UNQUALIFIED
Misaki RoysterSpainElwin Sharvill NEGOTIATION
Cody SaylorsUnited KingdomOnyama Limba NEW
Leja CaldareraJapanElwin Sharvill NEGOTIATION
Claire TollnerCanadaXuxue Feng QUALIFIED
Wickens NestleArgentinaAnna Fali QUALIFIED
Aika InouyeItalyAnna Fali UNQUALIFIED
Julie StensethBrazilElwin Sharvill UNQUALIFIED
Greenwood BologniaFranceIoni Bowcher UNQUALIFIED
Munro FerenczIndiaElwin Sharvill NEGOTIATION
Deepesh ChuiCanadaIvan Magalhaes NEW
Leon OldroydArgentinaBernardo Dominic QUALIFIED
Mayumi KolmetzJapanIvan Magalhaes PROPOSAL
Maria MarrierItalyIvan Magalhaes NEW
Jennifer AmigonSpainBernardo Dominic RENEWAL
David DarakjyJapanAmy Elsner RENEWAL
Nicolas IturbideJapanBernardo Dominic QUALIFIED
Jennifer AmigonJapanIvan Magalhaes UNQUALIFIED
Aditya KuskoArgentinaXuxue Feng QUALIFIED
Wickens NestleGermanyStephen Shaw PROPOSAL
Johnson SergiItalyAmy Elsner NEW
Deepesh ChuiSpainAnna Fali NEW
Arvin AlbaresFranceXuxue Feng RENEWAL
Faith GillianItalyBernardo Dominic UNQUALIFIED
James ButtIndiaStephen Shaw UNQUALIFIED
Chavez BriddickRussiaIoni Bowcher NEGOTIATION
Salvatore StockhamUnited KingdomIvan Magalhaes RENEWAL
Kadeem FlosiFranceElwin Sharvill NEW
Ashley DoeUnited KingdomAsiya Javayant PROPOSAL
Antonio CaudyJapanBernardo Dominic NEW
Maria MarrierJapanIvan Magalhaes NEGOTIATION
Johnson SergiBrazilIvan Magalhaes NEGOTIATION
Emily WhobreyIndiaOnyama Limba UNQUALIFIED
Leon OldroydRussiaXuxue Feng NEGOTIATION
Ivar PaprockiFranceOnyama Limba RENEWAL
Jeanfrancois VenereRussiaXuxue Feng NEW
Greenwood BologniaAustraliaAsiya Javayant RENEWAL
Rodrigues CampainArgentinaAsiya Javayant QUALIFIED
Cody SaylorsJapanAnna Fali UNQUALIFIED
Faith GillianItalyStephen Shaw QUALIFIED
Ivar PaprockiSpainBernardo Dominic QUALIFIED
Kadeem FlosiSpainElwin Sharvill NEGOTIATION
Izzy GarufiIndiaOnyama Limba PROPOSAL
Costa DilliardArgentinaOnyama Limba PROPOSAL
Kaitlin OstroskyItalyAmy Elsner RENEWAL
Izzy GarufiCanadaBernardo Dominic NEGOTIATION
Frozen Columns
Name
Ashley Doe
Adams Morasca
Ashley Doe
Juan Wieser
Tony Foller
Smith Glick
Kaitlin Ostrosky
Smith Glick
Rodrigues Campain
Aditya Kusko
Chavez Briddick
Faith Gillian
Francesco Shinko
Ivar Paprocki
Silvio Slusarski
Clifford Rim
Juan Wieser
Silvio Slusarski
Julie Stenseth
Mujtaba Nicka
Aditya Kusko
Wickens Nestle
Adams Morasca
Adams Morasca
Kaitlin Ostrosky
Nicolas Iturbide
Aruna Figeroa
Adams Morasca
Jefferson Schemmer
Maria Marrier
Munro Ferencz
Juan Wieser
Smith Glick
Leja Caldarera
Faith Gillian
Morrow Ruta
Jennifer Amigon
Aruna Figeroa
Jeanfrancois Venere
Julie Stenseth
Cody Saylors
Stacey Maclead
Antonio Caudy
Silvio Slusarski
Alejandro Perin
Nicolas Iturbide
Antonio Caudy
Juan Wieser
Julie Stenseth
Arvin Albares
IdCountryDate
1000France2026-06-02
1001Italy2026-06-05
1002India2026-06-01
1003Russia2026-06-05
1004United Kingdom2026-06-01
1005Argentina2026-06-08
1006Argentina2026-05-31
1007Brazil2026-06-05
1008India2026-05-21
1009Canada2026-05-22
1010Australia2026-06-05
1011Italy2026-05-27
1012Spain2026-06-06
1013Germany2026-06-04
1014Canada2026-06-05
1015France2026-05-31
1016Canada2026-05-19
1017United Kingdom2026-05-24
1018Canada2026-06-01
1019Brazil2026-06-08
1020Germany2026-05-15
1021Canada2026-05-26
1022Italy2026-06-05
1023Brazil2026-05-22
1024United Kingdom2026-05-20
1025Spain2026-05-26
1026Italy2026-05-17
1027Japan2026-06-07
1028Italy2026-06-13
1029Japan2026-06-12
1030Australia2026-06-11
1031Italy2026-05-24
1032Australia2026-06-03
1033India2026-06-07
1034Germany2026-05-24
1035United Kingdom2026-05-15
1036Germany2026-06-05
1037Russia2026-06-03
1038Australia2026-05-26
1039Italy2026-06-06
1040France2026-06-10
1041United Kingdom2026-06-10
1042Spain2026-06-03
1043Argentina2026-05-16
1044Canada2026-05-30
1045Italy2026-06-03
1046Brazil2026-05-23
1047Italy2026-05-26
1048Brazil2026-05-19
1049Russia2026-05-25

On-Demand Data

NameIdCountryDate
Stacey Maclead1000Argentina2026-06-08
Clifford Rim1001Argentina2026-06-05
David Darakjy1002Russia2026-06-13
Morrow Ruta1003Russia2026-06-12
Silvio Slusarski1004United Kingdom2026-06-10
Izzy Garufi1005United Kingdom2026-05-19
Silvio Slusarski1006Australia2026-06-13
Greenwood Bolognia1007Russia2026-05-16
Julie Stenseth1008Spain2026-05-31
Adams Morasca1009Japan2026-05-24
Misaki Royster1010United Kingdom2026-06-10
Ricardo Gaucho1011Canada2026-05-17
Ivar Paprocki1012Russia2026-05-21
Munro Ferencz1013Brazil2026-05-31
Smith Glick1014Canada2026-06-05
Misaki Royster1015Germany2026-06-03
Kadeem Flosi1016Brazil2026-06-11
Kadeem Flosi1017Canada2026-05-24
Smith Glick1018Russia2026-05-22
Octavia Malet1019Italy2026-06-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia MaletIndiaElwin Sharvill UNQUALIFIED
Darci PoquetteSpainStephen Shaw RENEWAL
Kadeem FlosiUnited KingdomOnyama Limba PROPOSAL
Johnson SergiGermanyIoni Bowcher PROPOSAL
Jefferson SchemmerAustraliaXuxue Feng PROPOSAL
Faith GillianCanadaElwin Sharvill NEGOTIATION
Izzy GarufiBrazilIvan Magalhaes RENEWAL
Octavia MaletArgentinaAsiya Javayant RENEWAL
Isabel BowleyFranceElwin Sharvill NEW
Rodrigues CampainCanadaXuxue Feng QUALIFIED
Julie StensethItalyIvan Magalhaes QUALIFIED
Isabel BowleyGermanyAsiya Javayant UNQUALIFIED
Sinclair WaycottItalyIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyFranceAmy Elsner NEGOTIATION
Murillo MaletFranceStephen Shaw UNQUALIFIED
Nicolas IturbideGermanyAnna Fali RENEWAL
Stacey MacleadItalyAsiya Javayant QUALIFIED
Aika InouyeItalyStephen Shaw QUALIFIED
Julie StensethCanadaOnyama Limba NEGOTIATION
Adams MorascaCanadaIoni Bowcher UNQUALIFIED
Ivar PaprockiBrazilIoni Bowcher PROPOSAL
Adams MorascaAustraliaXuxue Feng QUALIFIED
Ashley DoeAustraliaAmy Elsner NEGOTIATION
David DarakjyCanadaBernardo Dominic UNQUALIFIED
Leja CaldareraFranceIvan Magalhaes PROPOSAL
Clifford RimGermanyOnyama Limba UNQUALIFIED
Tony FollerRussiaAmy Elsner NEGOTIATION
Mujtaba NickaIndiaBernardo Dominic NEW
Smith GlickAustraliaOnyama Limba UNQUALIFIED
Izzy GarufiAustraliaStephen Shaw NEW
Octavia MaletArgentinaIvan Magalhaes RENEWAL
Chavez BriddickAustraliaElwin Sharvill QUALIFIED
Morrow RutaBrazilBernardo Dominic QUALIFIED
Clifford RimUnited KingdomElwin Sharvill NEW
Kaitlin OstroskyBrazilAnna Fali QUALIFIED
Cody SaylorsRussiaElwin Sharvill NEGOTIATION
Izzy GarufiArgentinaOnyama Limba QUALIFIED
Alejandro PerinFranceAsiya Javayant PROPOSAL
Silvio SlusarskiRussiaIvan Magalhaes RENEWAL
Octavia MaletJapanAnna Fali NEW

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