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
Mujtaba NickaAustraliaOnyama Limba RENEWAL
Tony FollerSpainXuxue Feng NEW
Jefferson SchemmerCanadaIoni Bowcher QUALIFIED
Rodrigues CampainArgentinaBernardo Dominic RENEWAL
Adams MorascaArgentinaIvan Magalhaes NEGOTIATION
Ashley DoeUnited KingdomAnna Fali RENEWAL
Emily WhobreyAustraliaAmy Elsner NEGOTIATION
Mujtaba NickaBrazilIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyIndiaBernardo Dominic RENEWAL
Alejandro PerinGermanyBernardo Dominic UNQUALIFIED
Clifford RimJapanIvan Magalhaes PROPOSAL
Misaki RoysterJapanElwin Sharvill NEW
Ashley DoeJapanBernardo Dominic PROPOSAL
Silvio SlusarskiArgentinaOnyama Limba QUALIFIED
Aruna FigeroaIndiaAnna Fali QUALIFIED
Alejandro PerinIndiaStephen Shaw PROPOSAL
Ashley DoeGermanyAsiya Javayant PROPOSAL
Aika InouyeUnited KingdomStephen Shaw QUALIFIED
Nicolas IturbideSpainOnyama Limba RENEWAL
Nicolas IturbideItalyAmy Elsner UNQUALIFIED
James ButtGermanyStephen Shaw NEW
Nicolas IturbideRussiaIoni Bowcher NEGOTIATION
Rodrigues CampainIndiaOnyama Limba PROPOSAL
Darci PoquetteIndiaElwin Sharvill QUALIFIED
Leja CaldareraIndiaStephen Shaw QUALIFIED
Jeanfrancois VenereRussiaAmy Elsner NEGOTIATION
Aruna FigeroaAustraliaXuxue Feng PROPOSAL
Ricardo GauchoJapanStephen Shaw NEW
Ashley DoeRussiaOnyama Limba QUALIFIED
Kadeem FlosiAustraliaStephen Shaw UNQUALIFIED
Antonio CaudyFranceAsiya Javayant RENEWAL
Aditya KuskoIndiaXuxue Feng NEGOTIATION
Ashley DoeGermanyOnyama Limba QUALIFIED
Ricardo GauchoUnited KingdomStephen Shaw PROPOSAL
Tony FollerItalyXuxue Feng RENEWAL
Alejandro PerinAustraliaOnyama Limba QUALIFIED
Deepesh ChuiSpainStephen Shaw PROPOSAL
Chavez BriddickSpainAsiya Javayant NEW
Nicolas IturbideFranceAsiya Javayant NEW
Deepesh ChuiGermanyXuxue Feng RENEWAL
Silvio SlusarskiFranceAnna Fali UNQUALIFIED
Aika InouyeFranceIoni Bowcher QUALIFIED
Murillo MaletJapanStephen Shaw NEW
Johnson SergiIndiaAsiya Javayant PROPOSAL
Darci PoquetteJapanAsiya Javayant QUALIFIED
Maisha RulapaughAustraliaOnyama Limba PROPOSAL
Julie StensethBrazilAsiya Javayant NEW
Clifford RimArgentinaAmy Elsner PROPOSAL
Morrow RutaArgentinaOnyama Limba QUALIFIED
Juan WieserIndiaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Leja CaldareraCanadaOnyama Limba PROPOSAL
Clifford RimCanadaXuxue Feng PROPOSAL
Silvio SlusarskiBrazilStephen Shaw UNQUALIFIED
Octavia MaletIndiaIvan Magalhaes PROPOSAL
Jefferson SchemmerUnited KingdomAsiya Javayant NEGOTIATION
Smith GlickSpainAnna Fali QUALIFIED
Leon OldroydUnited KingdomXuxue Feng NEGOTIATION
Francesco ShinkoRussiaOnyama Limba RENEWAL
Sinclair WaycottCanadaAsiya Javayant NEGOTIATION
Chavez BriddickItalyStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa DilliardUnited Kingdom2026-05-21Rousseaux, Michael Esq QUALIFIED54Amy Elsner
1001Greenwood BologniaBrazil2026-05-21Chanay, Jeffrey A Esq PROPOSAL19Onyama Limba
1002Faith GillianGermany2026-06-10Buckley Miller Wright NEW69Bernardo Dominic
1003Alejandro PerinFrance2026-05-20Printing Dimensions NEW7Bernardo Dominic
1004Rodrigues CampainFrance2026-05-18Truhlar And Truhlar Attys UNQUALIFIED36Bernardo Dominic
1005Ricardo GauchoArgentina2026-06-06Dorl, James J Esq NEW48Anna Fali
1006Aruna FigeroaRussia2026-05-28Chapman, Ross E Esq NEW34Ivan Magalhaes
1007Johnson SergiUnited Kingdom2026-05-18King, Christopher A Esq RENEWAL70Amy Elsner
1008Greenwood BologniaItaly2026-06-06Printing Dimensions UNQUALIFIED75Asiya Javayant
1009Francesco ShinkoBrazil2026-05-28Feltz Printing Service NEGOTIATION48Ioni Bowcher
1010Tony FollerAustralia2026-06-04King, Christopher A Esq PROPOSAL23Anna Fali
1011Octavia MaletJapan2026-06-04Truhlar And Truhlar Attys QUALIFIED64Onyama Limba
1012Kaitlin OstroskyJapan2026-05-12Rousseaux, Michael Esq RENEWAL50Anna Fali
1013Claire TollnerAustralia2026-05-28Morlong Associates NEW45Xuxue Feng
1014Chavez BriddickArgentina2026-05-27Chanay, Jeffrey A Esq QUALIFIED63Amy Elsner
1015Rodrigues CampainArgentina2026-05-21Dorl, James J Esq RENEWAL86Xuxue Feng
1016Greenwood BologniaBrazil2026-05-14Commercial Press NEW69Onyama Limba
1017Ashley DoeBrazil2026-06-07Printing Dimensions NEGOTIATION88Xuxue Feng
1018Kaitlin OstroskyBrazil2026-05-28Commercial Press RENEWAL14Bernardo Dominic
1019Tony FollerIndia2026-05-19Chanay, Jeffrey A Esq QUALIFIED22Stephen Shaw
1020Maisha RulapaughItaly2026-06-07King, Christopher A Esq PROPOSAL74Amy Elsner
1021Jones VocelkaUnited Kingdom2026-06-04Benton, John B Jr RENEWAL84Elwin Sharvill
1022Kaitlin OstroskyGermany2026-05-14Dorl, James J Esq NEGOTIATION44Amy Elsner
1023Jones VocelkaSpain2026-05-17Morlong Associates PROPOSAL21Ivan Magalhaes
1024Morrow RutaFrance2026-05-28King, Christopher A Esq PROPOSAL46Ivan Magalhaes
1025Cody SaylorsRussia2026-06-09Feltz Printing Service PROPOSAL52Ivan Magalhaes
1026Aditya KuskoGermany2026-05-21Rousseaux, Michael Esq NEW73Asiya Javayant
1027Jefferson SchemmerUnited Kingdom2026-05-25Rangoni Of Florence NEW82Xuxue Feng
1028Cody SaylorsGermany2026-05-22Commercial Press NEGOTIATION49Elwin Sharvill
1029Octavia MaletUnited Kingdom2026-05-17Truhlar And Truhlar Attys PROPOSAL82Amy Elsner
1030Darci PoquetteUnited Kingdom2026-05-29Dorl, James J Esq RENEWAL42Onyama Limba
1031Aditya KuskoJapan2026-05-17Dorl, James J Esq QUALIFIED67Elwin Sharvill
1032Leon OldroydAustralia2026-05-17Commercial Press RENEWAL97Elwin Sharvill
1033Stacey MacleadAustralia2026-06-03Benton, John B Jr UNQUALIFIED15Xuxue Feng
1034Aditya KuskoArgentina2026-06-03Morlong Associates NEW7Elwin Sharvill
1035Stacey MacleadBrazil2026-06-04Rousseaux, Michael Esq RENEWAL40Elwin Sharvill
1036Octavia MaletSpain2026-06-04Benton, John B Jr NEGOTIATION27Anna Fali
1037Maria MarrierJapan2026-05-19Chanay, Jeffrey A Esq UNQUALIFIED18Ivan Magalhaes
1038Darci PoquetteItaly2026-06-06Chanay, Jeffrey A Esq NEW49Amy Elsner
1039Sinclair WaycottBrazil2026-05-24Chanay, Jeffrey A Esq UNQUALIFIED89Onyama Limba
1040Darci PoquetteArgentina2026-06-02Printing Dimensions QUALIFIED51Elwin Sharvill
1041Smith GlickGermany2026-05-27Truhlar And Truhlar Attys RENEWAL68Anna Fali
1042Jeanfrancois VenereAustralia2026-05-25Morlong Associates UNQUALIFIED65Bernardo Dominic
1043Ivar PaprockiGermany2026-06-05Truhlar And Truhlar Attys QUALIFIED82Onyama Limba
1044Juan WieserGermany2026-06-04Chanay, Jeffrey A Esq QUALIFIED30Anna Fali
1045Darci PoquetteJapan2026-05-26King, Christopher A Esq UNQUALIFIED28Ivan Magalhaes
1046Rodrigues CampainCanada2026-05-16King, Christopher A Esq RENEWAL67Elwin Sharvill
1047Rodrigues CampainGermany2026-06-03Feiner Bros NEGOTIATION83Ivan Magalhaes
1048Kaitlin OstroskyCanada2026-05-25Dorl, James J Esq NEW15Asiya Javayant
1049Tony FollerGermany2026-05-30Buckley Miller Wright QUALIFIED43Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Octavia MaletFranceBernardo Dominic QUALIFIED
Munro FerenczJapanAmy Elsner NEW
Arvin AlbaresFranceBernardo Dominic PROPOSAL
Smith GlickJapanAsiya Javayant NEW
Silvio SlusarskiGermanyIoni Bowcher NEW
Jennifer AmigonSpainAmy Elsner NEW
David DarakjyIndiaAmy Elsner UNQUALIFIED
Wickens NestleUnited KingdomXuxue Feng RENEWAL
Izzy GarufiSpainStephen Shaw NEW
Nicolas IturbideJapanIoni Bowcher UNQUALIFIED
Silvio SlusarskiItalyXuxue Feng RENEWAL
Ashley DoeIndiaOnyama Limba RENEWAL
James ButtUnited KingdomElwin Sharvill NEW
Leon OldroydBrazilAnna Fali PROPOSAL
Aruna FigeroaArgentinaElwin Sharvill NEW
Mayumi KolmetzRussiaAsiya Javayant PROPOSAL
Salvatore StockhamItalyIvan Magalhaes PROPOSAL
James ButtAustraliaXuxue Feng PROPOSAL
Aruna FigeroaRussiaXuxue Feng NEW
Francesco ShinkoCanadaAsiya Javayant NEW
Kadeem FlosiItalyStephen Shaw NEW
Clifford RimArgentinaStephen Shaw UNQUALIFIED
Misaki RoysterBrazilXuxue Feng NEW
Leja CaldareraItalyAnna Fali QUALIFIED
Alejandro PerinItalyAsiya Javayant PROPOSAL
Octavia MaletItalyIoni Bowcher NEGOTIATION
Salvatore StockhamIndiaXuxue Feng RENEWAL
Faith GillianFranceIoni Bowcher PROPOSAL
Cody SaylorsArgentinaAsiya Javayant NEGOTIATION
Murillo MaletArgentinaOnyama Limba PROPOSAL
Izzy GarufiItalyXuxue Feng RENEWAL
Clifford RimJapanElwin Sharvill PROPOSAL
Nicolas IturbideFranceElwin Sharvill RENEWAL
Aditya KuskoGermanyOnyama Limba UNQUALIFIED
Maria MarrierJapanElwin Sharvill QUALIFIED
Aditya KuskoJapanXuxue Feng NEW
Octavia MaletArgentinaOnyama Limba QUALIFIED
Jennifer AmigonAustraliaXuxue Feng PROPOSAL
Johnson SergiArgentinaAmy Elsner RENEWAL
Kadeem FlosiUnited KingdomAnna Fali QUALIFIED
Mayumi KolmetzGermanyAmy Elsner UNQUALIFIED
Smith GlickRussiaOnyama Limba UNQUALIFIED
Claire TollnerRussiaIoni Bowcher NEW
Aruna FigeroaGermanyAmy Elsner QUALIFIED
Costa DilliardJapanXuxue Feng UNQUALIFIED
Ivar PaprockiAustraliaStephen Shaw UNQUALIFIED
Francesco ShinkoArgentinaBernardo Dominic RENEWAL
Octavia MaletArgentinaStephen Shaw NEW
Nicolas IturbideBrazilElwin Sharvill UNQUALIFIED
Claire TollnerIndiaAsiya Javayant PROPOSAL
Frozen Columns
Name
Adams Morasca
Antonio Caudy
Jefferson Schemmer
Aruna Figeroa
Costa Dilliard
Clifford Rim
Costa Dilliard
Maisha Rulapaugh
Mayumi Kolmetz
Johnson Sergi
Jefferson Schemmer
Jennifer Amigon
Francesco Shinko
Mayumi Kolmetz
Adams Morasca
Juan Wieser
Murillo Malet
Alejandro Perin
Deepesh Chui
Leon Oldroyd
Jones Vocelka
Jennifer Amigon
Maria Marrier
Kadeem Flosi
Rodrigues Campain
Silvio Slusarski
Izzy Garufi
Ashley Doe
Darci Poquette
Silvio Slusarski
Cody Saylors
Mayumi Kolmetz
Izzy Garufi
Kaitlin Ostrosky
Maria Marrier
Mujtaba Nicka
Faith Gillian
Clifford Rim
Aika Inouye
Juan Wieser
Aruna Figeroa
Sinclair Waycott
Adams Morasca
Leon Oldroyd
Ivar Paprocki
Misaki Royster
Emily Whobrey
Mujtaba Nicka
Tony Foller
Jeanfrancois Venere
IdCountryDate
1000Australia2026-05-21
1001France2026-05-30
1002Canada2026-05-12
1003Germany2026-05-18
1004Brazil2026-06-08
1005France2026-05-20
1006United Kingdom2026-05-16
1007Brazil2026-05-30
1008Canada2026-05-16
1009Spain2026-05-18
1010Russia2026-05-17
1011Canada2026-05-22
1012Japan2026-05-13
1013Argentina2026-05-22
1014India2026-05-16
1015Australia2026-05-22
1016Australia2026-05-26
1017United Kingdom2026-06-01
1018Argentina2026-06-09
1019France2026-05-31
1020France2026-05-15
1021France2026-05-20
1022Spain2026-05-28
1023Spain2026-05-29
1024Brazil2026-05-17
1025Italy2026-06-08
1026Brazil2026-05-28
1027Australia2026-05-26
1028Japan2026-05-31
1029France2026-06-01
1030France2026-05-22
1031Japan2026-05-19
1032Australia2026-05-24
1033Brazil2026-06-10
1034Argentina2026-05-21
1035France2026-05-27
1036Spain2026-06-04
1037Australia2026-05-25
1038Germany2026-06-09
1039United Kingdom2026-05-22
1040Australia2026-06-02
1041Australia2026-06-06
1042Australia2026-06-08
1043France2026-05-17
1044Spain2026-05-12
1045Japan2026-06-06
1046India2026-06-02
1047Germany2026-06-07
1048Brazil2026-06-07
1049Germany2026-05-28

On-Demand Data

NameIdCountryDate
Julie Stenseth1000France2026-05-25
Antonio Caudy1001India2026-05-18
Silvio Slusarski1002Spain2026-05-22
Antonio Caudy1003Russia2026-06-02
Clifford Rim1004Brazil2026-06-02
Stacey Maclead1005Russia2026-05-18
Morrow Ruta1006Spain2026-06-10
Mayumi Kolmetz1007United Kingdom2026-06-08
Faith Gillian1008Russia2026-06-10
Morrow Ruta1009Canada2026-05-16
Faith Gillian1010United Kingdom2026-06-10
Ivar Paprocki1011Germany2026-05-21
Arvin Albares1012Japan2026-05-17
Izzy Garufi1013Russia2026-05-16
Jeanfrancois Venere1014Brazil2026-06-09
Jeanfrancois Venere1015Russia2026-06-04
Mayumi Kolmetz1016Italy2026-05-25
Adams Morasca1017Canada2026-05-12
Antonio Caudy1018Italy2026-05-22
Alejandro Perin1019France2026-06-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo GauchoGermanyIoni Bowcher NEW
Salvatore StockhamBrazilElwin Sharvill QUALIFIED
Julie StensethGermanyAmy Elsner PROPOSAL
Chavez BriddickIndiaAnna Fali QUALIFIED
Julie StensethCanadaAmy Elsner NEW
Rodrigues CampainItalyIoni Bowcher UNQUALIFIED
Alejandro PerinIndiaIoni Bowcher NEGOTIATION
Adams MorascaBrazilIvan Magalhaes PROPOSAL
Wickens NestleCanadaIvan Magalhaes NEW
Julie StensethIndiaAsiya Javayant QUALIFIED
Tony FollerGermanyAmy Elsner QUALIFIED
Misaki RoysterArgentinaBernardo Dominic PROPOSAL
Aika InouyeItalyAmy Elsner NEGOTIATION
Aditya KuskoBrazilAnna Fali UNQUALIFIED
Izzy GarufiIndiaAsiya Javayant NEGOTIATION
Stacey MacleadCanadaOnyama Limba NEGOTIATION
Francesco ShinkoItalyAmy Elsner UNQUALIFIED
Johnson SergiJapanStephen Shaw PROPOSAL
Salvatore StockhamSpainAnna Fali RENEWAL
Clifford RimAustraliaIvan Magalhaes NEGOTIATION
Murillo MaletArgentinaAnna Fali UNQUALIFIED
Nicolas IturbideCanadaAsiya Javayant UNQUALIFIED
Leon OldroydCanadaBernardo Dominic PROPOSAL
Maisha RulapaughGermanyStephen Shaw UNQUALIFIED
Ashley DoeUnited KingdomAmy Elsner NEW
Mujtaba NickaFranceIvan Magalhaes RENEWAL
Salvatore StockhamCanadaIoni Bowcher UNQUALIFIED
Adams MorascaJapanXuxue Feng UNQUALIFIED
Jennifer AmigonItalyElwin Sharvill UNQUALIFIED
Silvio SlusarskiFranceStephen Shaw QUALIFIED
Smith GlickAustraliaIvan Magalhaes QUALIFIED
Mujtaba NickaGermanyAsiya Javayant QUALIFIED
James ButtFranceOnyama Limba NEGOTIATION
Sinclair WaycottFranceOnyama Limba NEW
Rodrigues CampainUnited KingdomStephen Shaw QUALIFIED
Kaitlin OstroskyItalyIoni Bowcher NEGOTIATION
Maisha RulapaughArgentinaStephen Shaw QUALIFIED
Faith GillianRussiaAmy Elsner NEW
Francesco ShinkoGermanyBernardo Dominic RENEWAL
Jefferson SchemmerArgentinaAsiya 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>