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
Smith GlickUnited KingdomElwin Sharvill QUALIFIED
Costa DilliardArgentinaAmy Elsner RENEWAL
Jones VocelkaJapanIvan Magalhaes RENEWAL
Francesco ShinkoFranceXuxue Feng QUALIFIED
Cody SaylorsUnited KingdomAnna Fali RENEWAL
Chavez BriddickRussiaAmy Elsner NEW
Deepesh ChuiIndiaAsiya Javayant PROPOSAL
Sinclair WaycottRussiaElwin Sharvill NEGOTIATION
Greenwood BologniaGermanyIvan Magalhaes NEGOTIATION
Clifford RimItalyXuxue Feng NEW
Mayumi KolmetzSpainAsiya Javayant NEGOTIATION
Aruna FigeroaRussiaElwin Sharvill QUALIFIED
Arvin AlbaresUnited KingdomAmy Elsner NEGOTIATION
James ButtSpainStephen Shaw NEGOTIATION
Leja CaldareraUnited KingdomIoni Bowcher NEW
Darci PoquetteRussiaXuxue Feng RENEWAL
Stacey MacleadUnited KingdomBernardo Dominic QUALIFIED
Leon OldroydGermanyAmy Elsner PROPOSAL
Kaitlin OstroskyAustraliaOnyama Limba NEGOTIATION
Ivar PaprockiAustraliaElwin Sharvill PROPOSAL
Jefferson SchemmerSpainElwin Sharvill RENEWAL
Octavia MaletRussiaAsiya Javayant QUALIFIED
Jeanfrancois VenereItalyElwin Sharvill PROPOSAL
Salvatore StockhamAustraliaStephen Shaw UNQUALIFIED
Aika InouyeFranceIvan Magalhaes UNQUALIFIED
Rodrigues CampainBrazilXuxue Feng PROPOSAL
Mayumi KolmetzGermanyXuxue Feng QUALIFIED
Adams MorascaSpainIoni Bowcher RENEWAL
Antonio CaudySpainAmy Elsner NEW
Johnson SergiRussiaOnyama Limba RENEWAL
Jefferson SchemmerItalyXuxue Feng UNQUALIFIED
Misaki RoysterCanadaAsiya Javayant RENEWAL
Faith GillianBrazilAmy Elsner PROPOSAL
Adams MorascaGermanyElwin Sharvill QUALIFIED
Greenwood BologniaArgentinaAnna Fali NEW
Morrow RutaArgentinaIvan Magalhaes NEW
Greenwood BologniaFranceAmy Elsner UNQUALIFIED
Mayumi KolmetzIndiaAnna Fali NEGOTIATION
Murillo MaletRussiaBernardo Dominic UNQUALIFIED
Silvio SlusarskiRussiaBernardo Dominic QUALIFIED
Mujtaba NickaArgentinaAnna Fali PROPOSAL
Julie StensethAustraliaStephen Shaw PROPOSAL
Deepesh ChuiRussiaBernardo Dominic NEGOTIATION
Juan WieserRussiaXuxue Feng QUALIFIED
Munro FerenczBrazilAmy Elsner NEW
Claire TollnerFranceStephen Shaw RENEWAL
Rodrigues CampainCanadaAmy Elsner UNQUALIFIED
Clifford RimItalyStephen Shaw NEW
Costa DilliardArgentinaIoni Bowcher QUALIFIED
Faith GillianUnited KingdomIvan Magalhaes UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Adams MorascaIndiaXuxue Feng RENEWAL
Jones VocelkaBrazilOnyama Limba UNQUALIFIED
David DarakjyJapanStephen Shaw UNQUALIFIED
Misaki RoysterJapanXuxue Feng NEGOTIATION
Salvatore StockhamGermanyAsiya Javayant QUALIFIED
Wickens NestleGermanyStephen Shaw UNQUALIFIED
Leon OldroydIndiaElwin Sharvill UNQUALIFIED
Julie StensethArgentinaIoni Bowcher NEW
Maria MarrierArgentinaAmy Elsner QUALIFIED
Leja CaldareraGermanyBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues CampainAustralia2026-04-11Dorl, James J Esq NEGOTIATION44Anna Fali
1001Johnson SergiIndia2026-05-03Commercial Press QUALIFIED6Elwin Sharvill
1002Smith GlickGermany2026-04-12Truhlar And Truhlar Attys RENEWAL63Elwin Sharvill
1003Isabel BowleyGermany2026-04-29Truhlar And Truhlar Attys QUALIFIED98Anna Fali
1004Arvin AlbaresCanada2026-04-04Feltz Printing Service NEGOTIATION58Onyama Limba
1005Jeanfrancois VenereArgentina2026-04-17Printing Dimensions NEW61Anna Fali
1006Mujtaba NickaBrazil2026-04-14Buckley Miller Wright RENEWAL79Elwin Sharvill
1007Murillo MaletItaly2026-04-08Commercial Press RENEWAL57Asiya Javayant
1008Rodrigues CampainRussia2026-04-06Feltz Printing Service UNQUALIFIED43Stephen Shaw
1009Izzy GarufiBrazil2026-04-05Rangoni Of Florence QUALIFIED80Xuxue Feng
1010Silvio SlusarskiJapan2026-04-15Chapman, Ross E Esq NEGOTIATION0Asiya Javayant
1011Rodrigues CampainCanada2026-04-22Rousseaux, Michael Esq QUALIFIED21Onyama Limba
1012James ButtAustralia2026-04-25Rousseaux, Michael Esq PROPOSAL25Ivan Magalhaes
1013Octavia MaletArgentina2026-05-02Dorl, James J Esq UNQUALIFIED8Xuxue Feng
1014Jones VocelkaIndia2026-04-05King, Christopher A Esq UNQUALIFIED33Asiya Javayant
1015Juan WieserArgentina2026-04-18King, Christopher A Esq NEGOTIATION1Ioni Bowcher
1016Aruna FigeroaGermany2026-05-01Chanay, Jeffrey A Esq PROPOSAL89Ioni Bowcher
1017Mayumi KolmetzUnited Kingdom2026-04-21Commercial Press RENEWAL30Ivan Magalhaes
1018Jefferson SchemmerJapan2026-05-02Benton, John B Jr UNQUALIFIED92Ivan Magalhaes
1019Aruna FigeroaJapan2026-04-28Chemel, James L Cpa QUALIFIED99Bernardo Dominic
1020Misaki RoysterItaly2026-04-23Truhlar And Truhlar Attys NEGOTIATION52Bernardo Dominic
1021Clifford RimAustralia2026-05-03Truhlar And Truhlar Attys NEGOTIATION53Amy Elsner
1022Stacey MacleadItaly2026-04-22Commercial Press QUALIFIED85Asiya Javayant
1023Mayumi KolmetzFrance2026-04-23Morlong Associates PROPOSAL5Bernardo Dominic
1024Arvin AlbaresUnited Kingdom2026-04-14Truhlar And Truhlar Attys NEW62Xuxue Feng
1025Clifford RimSpain2026-04-06Morlong Associates RENEWAL79Elwin Sharvill
1026Murillo MaletFrance2026-04-15Commercial Press PROPOSAL72Ivan Magalhaes
1027Misaki RoysterIndia2026-04-15King, Christopher A Esq NEGOTIATION86Amy Elsner
1028Aruna FigeroaJapan2026-05-01Commercial Press PROPOSAL85Bernardo Dominic
1029Kadeem FlosiCanada2026-04-21Printing Dimensions PROPOSAL13Bernardo Dominic
1030Aruna FigeroaIndia2026-05-03Commercial Press PROPOSAL69Elwin Sharvill
1031Aditya KuskoGermany2026-04-29Commercial Press QUALIFIED13Asiya Javayant
1032Nicolas IturbideBrazil2026-04-22King, Christopher A Esq UNQUALIFIED64Stephen Shaw
1033Antonio CaudySpain2026-04-12Benton, John B Jr RENEWAL27Anna Fali
1034James ButtJapan2026-04-16Truhlar And Truhlar Attys UNQUALIFIED48Amy Elsner
1035Misaki RoysterIndia2026-04-14Buckley Miller Wright QUALIFIED14Stephen Shaw
1036Chavez BriddickBrazil2026-05-01Truhlar And Truhlar Attys QUALIFIED1Stephen Shaw
1037Antonio CaudySpain2026-04-05Buckley Miller Wright UNQUALIFIED16Xuxue Feng
1038Stacey MacleadSpain2026-04-18Benton, John B Jr UNQUALIFIED7Asiya Javayant
1039Jones VocelkaGermany2026-04-29Feltz Printing Service PROPOSAL31Onyama Limba
1040Octavia MaletGermany2026-04-17Printing Dimensions RENEWAL60Ioni Bowcher
1041Isabel BowleyArgentina2026-04-24Dorl, James J Esq PROPOSAL5Elwin Sharvill
1042Jones VocelkaSpain2026-04-11Rousseaux, Michael Esq QUALIFIED11Asiya Javayant
1043Leon OldroydBrazil2026-04-04Rousseaux, Michael Esq RENEWAL55Elwin Sharvill
1044Rodrigues CampainFrance2026-04-20Dorl, James J Esq RENEWAL33Stephen Shaw
1045Arvin AlbaresUnited Kingdom2026-04-19Dorl, James J Esq NEW26Ioni Bowcher
1046Darci PoquetteRussia2026-04-19King, Christopher A Esq NEGOTIATION9Ivan Magalhaes
1047Rodrigues CampainUnited Kingdom2026-04-29Chemel, James L Cpa UNQUALIFIED62Elwin Sharvill
1048Octavia MaletRussia2026-04-28Commercial Press UNQUALIFIED82Bernardo Dominic
1049Adams MorascaIndia2026-04-12King, Christopher A Esq PROPOSAL70Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Aditya KuskoArgentinaXuxue Feng NEW
Adams MorascaJapanOnyama Limba NEW
Ashley DoeUnited KingdomAmy Elsner QUALIFIED
Wickens NestleJapanAnna Fali NEW
Cody SaylorsBrazilAmy Elsner RENEWAL
Darci PoquetteItalyIvan Magalhaes RENEWAL
Mujtaba NickaAustraliaAmy Elsner QUALIFIED
Darci PoquetteSpainOnyama Limba NEW
Aruna FigeroaIndiaIoni Bowcher QUALIFIED
Costa DilliardAustraliaXuxue Feng NEW
Mayumi KolmetzArgentinaElwin Sharvill NEW
Stacey MacleadSpainIoni Bowcher RENEWAL
Mujtaba NickaSpainXuxue Feng NEGOTIATION
Greenwood BologniaAustraliaAsiya Javayant NEW
Morrow RutaArgentinaAmy Elsner RENEWAL
Juan WieserCanadaIoni Bowcher PROPOSAL
Aika InouyeGermanyStephen Shaw UNQUALIFIED
Aika InouyeUnited KingdomOnyama Limba UNQUALIFIED
Nicolas IturbideRussiaOnyama Limba NEGOTIATION
Francesco ShinkoSpainAnna Fali PROPOSAL
Leja CaldareraRussiaOnyama Limba NEGOTIATION
Isabel BowleyGermanyOnyama Limba NEW
Leon OldroydAustraliaAsiya Javayant RENEWAL
Greenwood BologniaArgentinaElwin Sharvill UNQUALIFIED
Stacey MacleadArgentinaBernardo Dominic NEW
Emily WhobreyBrazilElwin Sharvill NEW
Faith GillianIndiaXuxue Feng UNQUALIFIED
Mujtaba NickaJapanIoni Bowcher RENEWAL
Adams MorascaFranceIvan Magalhaes NEGOTIATION
Mayumi KolmetzItalyAsiya Javayant UNQUALIFIED
Morrow RutaArgentinaIoni Bowcher QUALIFIED
Nicolas IturbideIndiaXuxue Feng NEGOTIATION
Costa DilliardIndiaStephen Shaw RENEWAL
Mujtaba NickaIndiaIvan Magalhaes NEGOTIATION
Misaki RoysterCanadaAsiya Javayant PROPOSAL
Faith GillianFranceIvan Magalhaes NEGOTIATION
Nicolas IturbideCanadaAnna Fali RENEWAL
Mayumi KolmetzSpainBernardo Dominic UNQUALIFIED
Maria MarrierAustraliaOnyama Limba NEW
Francesco ShinkoUnited KingdomAsiya Javayant UNQUALIFIED
Alejandro PerinJapanElwin Sharvill NEGOTIATION
Morrow RutaIndiaXuxue Feng NEGOTIATION
David DarakjyGermanyXuxue Feng QUALIFIED
Wickens NestleFranceIvan Magalhaes UNQUALIFIED
Aruna FigeroaItalyElwin Sharvill RENEWAL
Aditya KuskoSpainAmy Elsner PROPOSAL
Clifford RimUnited KingdomStephen Shaw QUALIFIED
Wickens NestleIndiaAmy Elsner RENEWAL
Chavez BriddickIndiaBernardo Dominic QUALIFIED
Sinclair WaycottIndiaBernardo Dominic PROPOSAL
Frozen Columns
Name
Leon Oldroyd
Misaki Royster
Aika Inouye
Faith Gillian
Murillo Malet
Wickens Nestle
Costa Dilliard
Maisha Rulapaugh
Maria Marrier
Maisha Rulapaugh
Leja Caldarera
Johnson Sergi
Nicolas Iturbide
Nicolas Iturbide
Antonio Caudy
Tony Foller
Jennifer Amigon
Maria Marrier
Aditya Kusko
Jones Vocelka
Maria Marrier
Aruna Figeroa
Emily Whobrey
Isabel Bowley
Jennifer Amigon
Murillo Malet
Smith Glick
Clifford Rim
Chavez Briddick
Munro Ferencz
Izzy Garufi
Arvin Albares
Darci Poquette
Ashley Doe
Maisha Rulapaugh
Ricardo Gaucho
Rodrigues Campain
James Butt
Nicolas Iturbide
Misaki Royster
Rodrigues Campain
Deepesh Chui
Cody Saylors
Izzy Garufi
Jeanfrancois Venere
Stacey Maclead
Jones Vocelka
Adams Morasca
Stacey Maclead
Aruna Figeroa
IdCountryDate
1000Italy2026-04-23
1001Brazil2026-04-14
1002Japan2026-04-11
1003Spain2026-04-10
1004India2026-04-09
1005Spain2026-04-10
1006United Kingdom2026-04-17
1007Australia2026-04-05
1008Italy2026-05-01
1009Canada2026-04-12
1010Brazil2026-04-08
1011India2026-04-06
1012Italy2026-04-19
1013France2026-04-13
1014Italy2026-05-01
1015United Kingdom2026-04-13
1016Brazil2026-04-30
1017Brazil2026-04-07
1018Canada2026-04-09
1019Australia2026-04-16
1020Spain2026-04-22
1021Canada2026-04-05
1022Germany2026-04-30
1023Germany2026-04-13
1024Brazil2026-05-01
1025Italy2026-04-10
1026Spain2026-04-04
1027India2026-04-18
1028Argentina2026-04-19
1029Italy2026-04-28
1030India2026-04-21
1031France2026-04-19
1032India2026-04-09
1033Argentina2026-04-26
1034Argentina2026-04-27
1035Canada2026-04-11
1036Argentina2026-05-02
1037Australia2026-04-05
1038Australia2026-04-11
1039Italy2026-04-17
1040Italy2026-04-17
1041Argentina2026-05-03
1042France2026-04-12
1043Spain2026-05-02
1044France2026-04-24
1045Russia2026-04-24
1046Russia2026-04-14
1047Germany2026-04-25
1048Argentina2026-04-16
1049Germany2026-04-11

On-Demand Data

NameIdCountryDate
Chavez Briddick1000Spain2026-04-13
Sinclair Waycott1001Japan2026-05-03
Ashley Doe1002India2026-04-21
Darci Poquette1003France2026-04-15
Mayumi Kolmetz1004India2026-04-18
Adams Morasca1005France2026-04-17
Darci Poquette1006Australia2026-04-27
Silvio Slusarski1007Australia2026-04-17
Francesco Shinko1008Russia2026-05-02
Jeanfrancois Venere1009Australia2026-04-30
Morrow Ruta1010Argentina2026-04-10
Costa Dilliard1011United Kingdom2026-04-18
Octavia Malet1012Australia2026-04-26
Maria Marrier1013France2026-04-20
Ricardo Gaucho1014Italy2026-04-28
Tony Foller1015India2026-04-26
Izzy Garufi1016Japan2026-04-16
Ricardo Gaucho1017Spain2026-04-11
Stacey Maclead1018United Kingdom2026-04-20
Maisha Rulapaugh1019Spain2026-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaRussiaElwin Sharvill NEW
Morrow RutaJapanAmy Elsner NEW
James ButtArgentinaIoni Bowcher NEGOTIATION
Izzy GarufiFranceXuxue Feng NEGOTIATION
Ricardo GauchoCanadaXuxue Feng UNQUALIFIED
Nicolas IturbideItalyAnna Fali PROPOSAL
Salvatore StockhamItalyAsiya Javayant PROPOSAL
Adams MorascaFranceIvan Magalhaes QUALIFIED
Munro FerenczBrazilAnna Fali NEGOTIATION
Ivar PaprockiRussiaIoni Bowcher PROPOSAL
Leja CaldareraUnited KingdomElwin Sharvill NEGOTIATION
Isabel BowleySpainOnyama Limba PROPOSAL
Claire TollnerUnited KingdomAsiya Javayant RENEWAL
Clifford RimSpainIoni Bowcher NEGOTIATION
Aruna FigeroaCanadaElwin Sharvill RENEWAL
Leja CaldareraItalyXuxue Feng NEGOTIATION
Emily WhobreyBrazilIoni Bowcher UNQUALIFIED
Maisha RulapaughFranceStephen Shaw RENEWAL
Costa DilliardAustraliaAnna Fali PROPOSAL
Chavez BriddickArgentinaStephen Shaw NEW
Emily WhobreyCanadaIvan Magalhaes PROPOSAL
Mayumi KolmetzSpainIoni Bowcher PROPOSAL
Morrow RutaAustraliaStephen Shaw UNQUALIFIED
Ivar PaprockiCanadaIoni Bowcher RENEWAL
Mayumi KolmetzArgentinaBernardo Dominic UNQUALIFIED
Ashley DoeItalyElwin Sharvill RENEWAL
Munro FerenczItalyElwin Sharvill NEGOTIATION
Emily WhobreyUnited KingdomIvan Magalhaes PROPOSAL
Jefferson SchemmerGermanyIoni Bowcher UNQUALIFIED
Clifford RimIndiaElwin Sharvill UNQUALIFIED
Morrow RutaGermanyStephen Shaw PROPOSAL
Aruna FigeroaRussiaOnyama Limba RENEWAL
Leon OldroydFranceOnyama Limba NEW
Ivar PaprockiFranceOnyama Limba NEW
Francesco ShinkoBrazilXuxue Feng PROPOSAL
Chavez BriddickGermanyAnna Fali UNQUALIFIED
Silvio SlusarskiCanadaAsiya Javayant PROPOSAL
Cody SaylorsGermanyStephen Shaw UNQUALIFIED
Faith GillianGermanyElwin Sharvill NEGOTIATION
Jeanfrancois VenereCanadaBernardo Dominic 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>