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
Maria MarrierJapanAnna Fali UNQUALIFIED
Aditya KuskoRussiaBernardo Dominic PROPOSAL
Jeanfrancois VenereArgentinaBernardo Dominic QUALIFIED
Faith GillianJapanAmy Elsner QUALIFIED
Francesco ShinkoRussiaStephen Shaw NEGOTIATION
Jeanfrancois VenereGermanyOnyama Limba NEGOTIATION
Aruna FigeroaArgentinaStephen Shaw NEGOTIATION
Darci PoquetteSpainAnna Fali RENEWAL
Alejandro PerinArgentinaXuxue Feng UNQUALIFIED
Costa DilliardIndiaBernardo Dominic RENEWAL
Kaitlin OstroskyUnited KingdomStephen Shaw NEW
Alejandro PerinRussiaAnna Fali NEGOTIATION
Jeanfrancois VenereCanadaIvan Magalhaes PROPOSAL
Isabel BowleySpainAnna Fali QUALIFIED
Julie StensethBrazilIvan Magalhaes QUALIFIED
Silvio SlusarskiRussiaStephen Shaw NEGOTIATION
Izzy GarufiSpainXuxue Feng PROPOSAL
Aika InouyeIndiaElwin Sharvill RENEWAL
Misaki RoysterCanadaElwin Sharvill PROPOSAL
Arvin AlbaresCanadaElwin Sharvill NEW
James ButtBrazilIoni Bowcher QUALIFIED
Mujtaba NickaFranceIvan Magalhaes QUALIFIED
Alejandro PerinJapanXuxue Feng PROPOSAL
Costa DilliardCanadaIvan Magalhaes RENEWAL
Emily WhobreyJapanIvan Magalhaes NEW
Jones VocelkaRussiaXuxue Feng NEW
Mujtaba NickaRussiaAsiya Javayant RENEWAL
Juan WieserAustraliaXuxue Feng QUALIFIED
Jones VocelkaFranceOnyama Limba PROPOSAL
Johnson SergiJapanAnna Fali UNQUALIFIED
Costa DilliardArgentinaAsiya Javayant PROPOSAL
Johnson SergiFranceAmy Elsner RENEWAL
Izzy GarufiFranceIvan Magalhaes RENEWAL
Mayumi KolmetzRussiaAmy Elsner RENEWAL
Rodrigues CampainJapanAnna Fali NEW
Julie StensethFranceOnyama Limba RENEWAL
Wickens NestleFranceOnyama Limba UNQUALIFIED
Adams MorascaRussiaAmy Elsner QUALIFIED
Wickens NestleBrazilElwin Sharvill UNQUALIFIED
Jennifer AmigonUnited KingdomAmy Elsner RENEWAL
Ashley DoeRussiaStephen Shaw RENEWAL
Mujtaba NickaUnited KingdomIvan Magalhaes PROPOSAL
Salvatore StockhamSpainIvan Magalhaes NEGOTIATION
Munro FerenczUnited KingdomAsiya Javayant NEW
Sinclair WaycottAustraliaXuxue Feng PROPOSAL
Octavia MaletSpainIvan Magalhaes NEGOTIATION
Rodrigues CampainGermanyXuxue Feng QUALIFIED
Ivar PaprockiJapanXuxue Feng NEW
Nicolas IturbideUnited KingdomStephen Shaw QUALIFIED
Wickens NestleBrazilAnna Fali PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Mayumi KolmetzJapanAnna Fali QUALIFIED
Arvin AlbaresFranceIoni Bowcher UNQUALIFIED
Clifford RimIndiaBernardo Dominic RENEWAL
Aika InouyeJapanXuxue Feng PROPOSAL
Kadeem FlosiCanadaStephen Shaw RENEWAL
Kaitlin OstroskyUnited KingdomElwin Sharvill QUALIFIED
Clifford RimAustraliaBernardo Dominic QUALIFIED
Jennifer AmigonIndiaIoni Bowcher RENEWAL
Greenwood BologniaGermanyBernardo Dominic NEGOTIATION
Jefferson SchemmerUnited KingdomElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio CaudyFrance2026-04-27King, Christopher A Esq PROPOSAL87Amy Elsner
1001Kadeem FlosiItaly2026-04-08Chemel, James L Cpa PROPOSAL79Xuxue Feng
1002Nicolas IturbideUnited Kingdom2026-04-03Morlong Associates NEW15Bernardo Dominic
1003Morrow RutaUnited Kingdom2026-03-30Benton, John B Jr NEGOTIATION73Elwin Sharvill
1004Ivar PaprockiAustralia2026-04-14Benton, John B Jr NEGOTIATION55Ivan Magalhaes
1005Maisha RulapaughArgentina2026-04-11Rangoni Of Florence PROPOSAL99Bernardo Dominic
1006Stacey MacleadFrance2026-04-10Feltz Printing Service UNQUALIFIED1Ivan Magalhaes
1007Sinclair WaycottJapan2026-04-20Chemel, James L Cpa UNQUALIFIED55Bernardo Dominic
1008Smith GlickCanada2026-04-09Commercial Press PROPOSAL57Onyama Limba
1009Octavia MaletBrazil2026-04-26Benton, John B Jr NEGOTIATION66Onyama Limba
1010Misaki RoysterFrance2026-04-14Rangoni Of Florence QUALIFIED92Onyama Limba
1011Nicolas IturbideUnited Kingdom2026-04-24Feiner Bros NEGOTIATION98Ioni Bowcher
1012James ButtIndia2026-04-01Morlong Associates PROPOSAL76Amy Elsner
1013Mujtaba NickaRussia2026-04-07Rangoni Of Florence UNQUALIFIED86Ivan Magalhaes
1014Deepesh ChuiIndia2026-04-05Chemel, James L Cpa UNQUALIFIED27Ioni Bowcher
1015Nicolas IturbideUnited Kingdom2026-04-11Truhlar And Truhlar Attys UNQUALIFIED87Xuxue Feng
1016Costa DilliardArgentina2026-04-12Truhlar And Truhlar Attys PROPOSAL40Ivan Magalhaes
1017Chavez BriddickArgentina2026-04-21Benton, John B Jr QUALIFIED47Elwin Sharvill
1018Aruna FigeroaSpain2026-04-07Benton, John B Jr QUALIFIED32Asiya Javayant
1019Ashley DoeUnited Kingdom2026-03-29Buckley Miller Wright NEGOTIATION42Ioni Bowcher
1020Cody SaylorsAustralia2026-04-22Morlong Associates PROPOSAL80Asiya Javayant
1021Maisha RulapaughAustralia2026-04-04Morlong Associates UNQUALIFIED14Elwin Sharvill
1022Maisha RulapaughGermany2026-04-04Feiner Bros PROPOSAL58Ioni Bowcher
1023Julie StensethBrazil2026-04-18Commercial Press NEGOTIATION37Asiya Javayant
1024Aditya KuskoUnited Kingdom2026-04-01Dorl, James J Esq UNQUALIFIED44Ioni Bowcher
1025Emily WhobreyUnited Kingdom2026-04-06Chanay, Jeffrey A Esq RENEWAL59Onyama Limba
1026Stacey MacleadRussia2026-04-03Rangoni Of Florence RENEWAL36Xuxue Feng
1027Misaki RoysterGermany2026-04-23Benton, John B Jr UNQUALIFIED60Xuxue Feng
1028Ricardo GauchoBrazil2026-04-11Buckley Miller Wright NEGOTIATION19Onyama Limba
1029Aditya KuskoArgentina2026-04-27Commercial Press NEGOTIATION26Xuxue Feng
1030Cody SaylorsJapan2026-03-30Rangoni Of Florence PROPOSAL0Onyama Limba
1031Juan WieserItaly2026-04-17Commercial Press QUALIFIED81Ioni Bowcher
1032Emily WhobreyGermany2026-03-31Benton, John B Jr RENEWAL17Anna Fali
1033Sinclair WaycottIndia2026-04-15Buckley Miller Wright PROPOSAL32Amy Elsner
1034Munro FerenczFrance2026-04-10Printing Dimensions NEW22Onyama Limba
1035Darci PoquetteBrazil2026-04-16Feiner Bros RENEWAL81Xuxue Feng
1036Wickens NestleItaly2026-04-12Rangoni Of Florence NEGOTIATION36Ioni Bowcher
1037Kaitlin OstroskyRussia2026-03-29Feiner Bros RENEWAL6Xuxue Feng
1038Darci PoquetteJapan2026-04-02Rangoni Of Florence RENEWAL10Ivan Magalhaes
1039Silvio SlusarskiIndia2026-04-07Truhlar And Truhlar Attys UNQUALIFIED39Xuxue Feng
1040Aditya KuskoSpain2026-03-30Truhlar And Truhlar Attys PROPOSAL40Asiya Javayant
1041Faith GillianItaly2026-04-12King, Christopher A Esq PROPOSAL64Anna Fali
1042Smith GlickFrance2026-04-07Chanay, Jeffrey A Esq NEGOTIATION86Ivan Magalhaes
1043Munro FerenczArgentina2026-04-25Benton, John B Jr QUALIFIED76Onyama Limba
1044Rodrigues CampainJapan2026-04-19Morlong Associates PROPOSAL98Stephen Shaw
1045Aruna FigeroaSpain2026-03-30Chapman, Ross E Esq QUALIFIED76Asiya Javayant
1046Antonio CaudyItaly2026-03-31King, Christopher A Esq PROPOSAL61Stephen Shaw
1047Emily WhobreyFrance2026-04-23Printing Dimensions NEGOTIATION62Ioni Bowcher
1048Leja CaldareraIndia2026-04-10Feltz Printing Service NEW80Stephen Shaw
1049Sinclair WaycottSpain2026-04-12Buckley Miller Wright NEW21Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
David DarakjyArgentinaBernardo Dominic QUALIFIED
Munro FerenczSpainOnyama Limba QUALIFIED
Misaki RoysterUnited KingdomOnyama Limba NEW
Alejandro PerinAustraliaAsiya Javayant UNQUALIFIED
Smith GlickJapanAnna Fali QUALIFIED
Emily WhobreyCanadaOnyama Limba UNQUALIFIED
Ricardo GauchoItalyAsiya Javayant QUALIFIED
Wickens NestleSpainBernardo Dominic UNQUALIFIED
Alejandro PerinBrazilIvan Magalhaes RENEWAL
Leja CaldareraArgentinaBernardo Dominic QUALIFIED
Stacey MacleadFranceIoni Bowcher NEW
Deepesh ChuiGermanyIoni Bowcher UNQUALIFIED
Silvio SlusarskiArgentinaElwin Sharvill RENEWAL
Jennifer AmigonItalyAmy Elsner RENEWAL
Aruna FigeroaFranceBernardo Dominic NEW
Clifford RimJapanBernardo Dominic QUALIFIED
Claire TollnerArgentinaAnna Fali NEGOTIATION
Maria MarrierJapanAmy Elsner QUALIFIED
Kaitlin OstroskyCanadaAmy Elsner NEW
Wickens NestleAustraliaXuxue Feng NEGOTIATION
Juan WieserAustraliaIoni Bowcher NEW
Faith GillianRussiaElwin Sharvill QUALIFIED
Maria MarrierUnited KingdomOnyama Limba NEGOTIATION
Aika InouyeFranceIvan Magalhaes UNQUALIFIED
Ashley DoeFranceAmy Elsner UNQUALIFIED
Rodrigues CampainGermanyIvan Magalhaes PROPOSAL
Darci PoquetteAustraliaIvan Magalhaes NEGOTIATION
Jennifer AmigonIndiaStephen Shaw PROPOSAL
Ashley DoeFranceAnna Fali NEW
Ashley DoeSpainIvan Magalhaes UNQUALIFIED
Ashley DoeIndiaIvan Magalhaes QUALIFIED
Jones VocelkaGermanyElwin Sharvill RENEWAL
Cody SaylorsUnited KingdomStephen Shaw RENEWAL
Emily WhobreySpainAmy Elsner NEW
Salvatore StockhamCanadaIvan Magalhaes RENEWAL
Kadeem FlosiAustraliaAnna Fali RENEWAL
Morrow RutaFranceStephen Shaw UNQUALIFIED
James ButtCanadaAsiya Javayant NEW
Salvatore StockhamIndiaAnna Fali RENEWAL
Aika InouyeIndiaAnna Fali PROPOSAL
Darci PoquetteRussiaIvan Magalhaes QUALIFIED
Rodrigues CampainCanadaElwin Sharvill NEW
James ButtSpainBernardo Dominic QUALIFIED
David DarakjyItalyOnyama Limba NEW
Jones VocelkaItalyAnna Fali UNQUALIFIED
Emily WhobreyFranceIvan Magalhaes RENEWAL
Jefferson SchemmerSpainBernardo Dominic RENEWAL
Mayumi KolmetzUnited KingdomAmy Elsner PROPOSAL
Costa DilliardSpainXuxue Feng UNQUALIFIED
Kadeem FlosiCanadaElwin Sharvill UNQUALIFIED
Frozen Columns
Name
Clifford Rim
Francesco Shinko
Johnson Sergi
Cody Saylors
Tony Foller
Salvatore Stockham
Kadeem Flosi
Deepesh Chui
Smith Glick
Maria Marrier
Wickens Nestle
Munro Ferencz
Emily Whobrey
Jones Vocelka
Rodrigues Campain
Chavez Briddick
Nicolas Iturbide
Tony Foller
Juan Wieser
Isabel Bowley
Cody Saylors
Arvin Albares
Chavez Briddick
Salvatore Stockham
Jennifer Amigon
Maisha Rulapaugh
Sinclair Waycott
Sinclair Waycott
Rodrigues Campain
Sinclair Waycott
David Darakjy
Cody Saylors
Sinclair Waycott
Faith Gillian
Francesco Shinko
Deepesh Chui
Tony Foller
Sinclair Waycott
Julie Stenseth
Maisha Rulapaugh
Rodrigues Campain
James Butt
Leon Oldroyd
Silvio Slusarski
Smith Glick
Stacey Maclead
Emily Whobrey
Jones Vocelka
David Darakjy
Kadeem Flosi
IdCountryDate
1000France2026-04-02
1001Russia2026-04-06
1002Argentina2026-04-19
1003Russia2026-04-05
1004Germany2026-03-30
1005Spain2026-04-12
1006Japan2026-03-30
1007Japan2026-04-04
1008Japan2026-04-07
1009Italy2026-04-15
1010Argentina2026-04-13
1011Canada2026-04-19
1012Australia2026-04-11
1013India2026-03-30
1014Japan2026-04-04
1015Canada2026-04-08
1016Italy2026-04-01
1017Australia2026-04-03
1018Argentina2026-04-23
1019Brazil2026-04-18
1020Japan2026-04-16
1021Russia2026-04-22
1022Japan2026-04-08
1023Argentina2026-04-01
1024Argentina2026-04-01
1025Russia2026-04-19
1026Argentina2026-04-06
1027Japan2026-04-19
1028Australia2026-04-01
1029France2026-04-26
1030India2026-04-20
1031Japan2026-04-21
1032Australia2026-04-02
1033Japan2026-04-11
1034United Kingdom2026-03-31
1035Japan2026-04-22
1036Brazil2026-04-14
1037Italy2026-04-06
1038Australia2026-04-12
1039Spain2026-04-24
1040Argentina2026-04-11
1041Argentina2026-04-17
1042India2026-04-12
1043United Kingdom2026-04-24
1044France2026-04-05
1045United Kingdom2026-04-14
1046Japan2026-03-30
1047Italy2026-04-03
1048Brazil2026-04-03
1049Spain2026-04-10

On-Demand Data

NameIdCountryDate
Wickens Nestle1000India2026-04-15
Ivar Paprocki1001Germany2026-04-15
Arvin Albares1002India2026-03-30
Sinclair Waycott1003Brazil2026-04-09
Francesco Shinko1004Russia2026-04-18
Leja Caldarera1005Germany2026-04-24
Kadeem Flosi1006United Kingdom2026-04-11
Jennifer Amigon1007United Kingdom2026-04-08
Kaitlin Ostrosky1008India2026-03-29
Tony Foller1009Russia2026-04-21
Chavez Briddick1010France2026-04-16
Clifford Rim1011Brazil2026-03-30
Stacey Maclead1012Canada2026-04-04
Aruna Figeroa1013Japan2026-04-26
Isabel Bowley1014Brazil2026-04-01
Julie Stenseth1015France2026-04-08
Darci Poquette1016Argentina2026-04-06
Sinclair Waycott1017Argentina2026-03-29
Silvio Slusarski1018Italy2026-04-07
Salvatore Stockham1019Spain2026-04-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi KolmetzUnited KingdomElwin Sharvill UNQUALIFIED
Munro FerenczSpainXuxue Feng UNQUALIFIED
Deepesh ChuiBrazilOnyama Limba PROPOSAL
Jones VocelkaUnited KingdomElwin Sharvill NEW
Arvin AlbaresArgentinaIvan Magalhaes PROPOSAL
Ricardo GauchoItalyXuxue Feng PROPOSAL
Deepesh ChuiCanadaIoni Bowcher PROPOSAL
Antonio CaudyGermanyXuxue Feng UNQUALIFIED
Wickens NestleItalyBernardo Dominic NEGOTIATION
Leon OldroydSpainIvan Magalhaes PROPOSAL
Maisha RulapaughArgentinaAsiya Javayant NEW
Jeanfrancois VenereAustraliaElwin Sharvill UNQUALIFIED
Salvatore StockhamArgentinaAnna Fali QUALIFIED
Aditya KuskoArgentinaStephen Shaw RENEWAL
Jennifer AmigonJapanAsiya Javayant PROPOSAL
Jones VocelkaItalyBernardo Dominic NEGOTIATION
Aika InouyeGermanyIoni Bowcher NEW
Alejandro PerinAustraliaAsiya Javayant NEGOTIATION
Alejandro PerinSpainAsiya Javayant NEGOTIATION
Clifford RimArgentinaXuxue Feng UNQUALIFIED
Salvatore StockhamItalyBernardo Dominic RENEWAL
Aruna FigeroaIndiaElwin Sharvill NEW
David DarakjyArgentinaOnyama Limba RENEWAL
Mujtaba NickaBrazilAmy Elsner QUALIFIED
Nicolas IturbideRussiaXuxue Feng QUALIFIED
Isabel BowleyAustraliaXuxue Feng NEGOTIATION
Jennifer AmigonItalyXuxue Feng QUALIFIED
David DarakjyJapanAnna Fali NEW
Aika InouyeFranceIoni Bowcher UNQUALIFIED
Rodrigues CampainJapanElwin Sharvill NEGOTIATION
Munro FerenczBrazilAmy Elsner NEW
Stacey MacleadIndiaAnna Fali NEGOTIATION
Leon OldroydItalyAmy Elsner NEW
Faith GillianBrazilElwin Sharvill UNQUALIFIED
Ricardo GauchoRussiaBernardo Dominic QUALIFIED
Morrow RutaBrazilAsiya Javayant QUALIFIED
Aditya KuskoJapanElwin Sharvill UNQUALIFIED
Mujtaba NickaItalyOnyama Limba NEGOTIATION
Kadeem FlosiArgentinaBernardo Dominic QUALIFIED
Jones VocelkaItalyXuxue Feng UNQUALIFIED

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