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
Salvatore StockhamArgentinaStephen Shaw UNQUALIFIED
Darci PoquetteSpainStephen Shaw UNQUALIFIED
Leja CaldareraUnited KingdomAsiya Javayant NEGOTIATION
Arvin AlbaresIndiaBernardo Dominic NEW
Greenwood BologniaCanadaOnyama Limba NEW
Arvin AlbaresGermanyElwin Sharvill UNQUALIFIED
Salvatore StockhamSpainIoni Bowcher NEW
Kaitlin OstroskyAustraliaIvan Magalhaes UNQUALIFIED
Salvatore StockhamRussiaIoni Bowcher NEW
James ButtCanadaElwin Sharvill UNQUALIFIED
Adams MorascaItalyAsiya Javayant QUALIFIED
Silvio SlusarskiUnited KingdomElwin Sharvill NEGOTIATION
Maisha RulapaughGermanyAmy Elsner QUALIFIED
Sinclair WaycottJapanAnna Fali NEW
David DarakjyAustraliaOnyama Limba RENEWAL
Kaitlin OstroskyAustraliaBernardo Dominic PROPOSAL
Nicolas IturbideBrazilAnna Fali QUALIFIED
Salvatore StockhamCanadaElwin Sharvill QUALIFIED
Octavia MaletBrazilElwin Sharvill NEW
Smith GlickCanadaXuxue Feng RENEWAL
Murillo MaletRussiaXuxue Feng PROPOSAL
Isabel BowleyItalyOnyama Limba PROPOSAL
Aruna FigeroaItalyXuxue Feng RENEWAL
Leja CaldareraIndiaAsiya Javayant NEGOTIATION
Silvio SlusarskiGermanyIoni Bowcher RENEWAL
James ButtGermanyIoni Bowcher PROPOSAL
Isabel BowleyRussiaOnyama Limba PROPOSAL
Isabel BowleyBrazilBernardo Dominic PROPOSAL
Sinclair WaycottCanadaXuxue Feng UNQUALIFIED
Leon OldroydRussiaIvan Magalhaes QUALIFIED
Rodrigues CampainCanadaIoni Bowcher UNQUALIFIED
Izzy GarufiUnited KingdomElwin Sharvill UNQUALIFIED
Emily WhobreySpainBernardo Dominic PROPOSAL
Nicolas IturbideCanadaXuxue Feng PROPOSAL
Munro FerenczJapanStephen Shaw RENEWAL
Johnson SergiGermanyAnna Fali NEGOTIATION
Jennifer AmigonAustraliaBernardo Dominic PROPOSAL
Cody SaylorsBrazilOnyama Limba NEGOTIATION
Salvatore StockhamJapanAmy Elsner UNQUALIFIED
Jennifer AmigonFranceXuxue Feng RENEWAL
Johnson SergiItalyAsiya Javayant UNQUALIFIED
Chavez BriddickAustraliaAsiya Javayant RENEWAL
Silvio SlusarskiCanadaIvan Magalhaes PROPOSAL
Deepesh ChuiFranceStephen Shaw PROPOSAL
Emily WhobreyFranceStephen Shaw NEGOTIATION
Nicolas IturbideFranceElwin Sharvill RENEWAL
Murillo MaletRussiaBernardo Dominic RENEWAL
Rodrigues CampainAustraliaOnyama Limba NEW
Isabel BowleyUnited KingdomAsiya Javayant UNQUALIFIED
Adams MorascaFranceOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Kadeem FlosiItalyStephen Shaw QUALIFIED
Maria MarrierCanadaBernardo Dominic UNQUALIFIED
Emily WhobreySpainStephen Shaw QUALIFIED
Morrow RutaAustraliaAmy Elsner PROPOSAL
Deepesh ChuiJapanElwin Sharvill NEW
Octavia MaletSpainAsiya Javayant QUALIFIED
Isabel BowleyArgentinaAnna Fali NEGOTIATION
Claire TollnerBrazilXuxue Feng QUALIFIED
Sinclair WaycottItalyOnyama Limba NEGOTIATION
Leon OldroydUnited KingdomElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mujtaba NickaItaly2026-05-16Truhlar And Truhlar Attys QUALIFIED96Asiya Javayant
1001Maisha RulapaughFrance2026-05-26Truhlar And Truhlar Attys UNQUALIFIED68Ivan Magalhaes
1002Stacey MacleadBrazil2026-05-22Morlong Associates UNQUALIFIED28Anna Fali
1003Emily WhobreySpain2026-06-01Feltz Printing Service NEGOTIATION54Anna Fali
1004Clifford RimGermany2026-05-18Rangoni Of Florence QUALIFIED88Stephen Shaw
1005Smith GlickFrance2026-05-17King, Christopher A Esq QUALIFIED60Elwin Sharvill
1006Aditya KuskoAustralia2026-05-19Rangoni Of Florence QUALIFIED25Ivan Magalhaes
1007David DarakjyArgentina2026-05-13Dorl, James J Esq UNQUALIFIED47Ivan Magalhaes
1008Aruna FigeroaArgentina2026-06-11Printing Dimensions NEW7Bernardo Dominic
1009Juan WieserAustralia2026-05-21Rousseaux, Michael Esq NEW98Anna Fali
1010Cody SaylorsArgentina2026-05-21King, Christopher A Esq RENEWAL45Xuxue Feng
1011Izzy GarufiFrance2026-06-04Dorl, James J Esq NEW2Ivan Magalhaes
1012Juan WieserAustralia2026-05-24Chanay, Jeffrey A Esq NEGOTIATION97Ivan Magalhaes
1013Misaki RoysterJapan2026-05-24Morlong Associates NEGOTIATION12Onyama Limba
1014Johnson SergiUnited Kingdom2026-06-08Rousseaux, Michael Esq QUALIFIED45Stephen Shaw
1015Costa DilliardAustralia2026-05-26Rousseaux, Michael Esq PROPOSAL38Bernardo Dominic
1016Wickens NestleCanada2026-05-29Truhlar And Truhlar Attys QUALIFIED32Asiya Javayant
1017Ivar PaprockiItaly2026-05-26Chanay, Jeffrey A Esq NEGOTIATION53Onyama Limba
1018Deepesh ChuiBrazil2026-05-24Truhlar And Truhlar Attys UNQUALIFIED94Onyama Limba
1019Clifford RimIndia2026-06-01Feltz Printing Service NEGOTIATION84Elwin Sharvill
1020Leja CaldareraUnited Kingdom2026-06-04Morlong Associates UNQUALIFIED27Asiya Javayant
1021Ashley DoeIndia2026-05-19Chemel, James L Cpa UNQUALIFIED5Ioni Bowcher
1022James ButtFrance2026-06-09Feltz Printing Service NEGOTIATION72Asiya Javayant
1023Stacey MacleadGermany2026-05-14King, Christopher A Esq NEGOTIATION9Ioni Bowcher
1024Ricardo GauchoRussia2026-06-11Rousseaux, Michael Esq NEGOTIATION79Asiya Javayant
1025Aditya KuskoGermany2026-06-08Rousseaux, Michael Esq PROPOSAL26Ioni Bowcher
1026Isabel BowleyFrance2026-06-08Truhlar And Truhlar Attys PROPOSAL68Elwin Sharvill
1027Kadeem FlosiAustralia2026-06-03Printing Dimensions UNQUALIFIED60Xuxue Feng
1028Antonio CaudyBrazil2026-05-28Benton, John B Jr NEGOTIATION45Ivan Magalhaes
1029Murillo MaletSpain2026-05-19Benton, John B Jr UNQUALIFIED74Ivan Magalhaes
1030Johnson SergiArgentina2026-06-03Feltz Printing Service NEGOTIATION31Stephen Shaw
1031Emily WhobreyGermany2026-06-05Benton, John B Jr NEW7Asiya Javayant
1032Clifford RimSpain2026-05-23Chanay, Jeffrey A Esq QUALIFIED82Ioni Bowcher
1033Leon OldroydRussia2026-06-04Dorl, James J Esq RENEWAL51Ivan Magalhaes
1034Costa DilliardRussia2026-05-27Dorl, James J Esq QUALIFIED10Asiya Javayant
1035Jeanfrancois VenereAustralia2026-05-20Printing Dimensions NEGOTIATION14Elwin Sharvill
1036Jeanfrancois VenereCanada2026-05-25Feltz Printing Service UNQUALIFIED96Onyama Limba
1037Salvatore StockhamGermany2026-05-19King, Christopher A Esq QUALIFIED4Amy Elsner
1038Murillo MaletCanada2026-06-09Dorl, James J Esq NEGOTIATION55Bernardo Dominic
1039Izzy GarufiBrazil2026-05-18Benton, John B Jr PROPOSAL27Ioni Bowcher
1040Deepesh ChuiArgentina2026-06-11Chanay, Jeffrey A Esq RENEWAL87Onyama Limba
1041Claire TollnerRussia2026-05-17Benton, John B Jr PROPOSAL71Bernardo Dominic
1042Deepesh ChuiArgentina2026-06-07Feltz Printing Service PROPOSAL51Elwin Sharvill
1043Deepesh ChuiGermany2026-05-27Truhlar And Truhlar Attys PROPOSAL52Ivan Magalhaes
1044Johnson SergiArgentina2026-05-28Commercial Press RENEWAL69Xuxue Feng
1045Darci PoquetteAustralia2026-06-01Feltz Printing Service NEGOTIATION34Xuxue Feng
1046Ashley DoeUnited Kingdom2026-05-19Feiner Bros QUALIFIED82Anna Fali
1047Francesco ShinkoSpain2026-05-18Printing Dimensions NEW39Ioni Bowcher
1048Leon OldroydJapan2026-06-04Rousseaux, Michael Esq PROPOSAL34Amy Elsner
1049Maisha RulapaughBrazil2026-06-09Morlong Associates QUALIFIED33Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Francesco ShinkoRussiaAnna Fali QUALIFIED
Salvatore StockhamGermanyElwin Sharvill UNQUALIFIED
Aruna FigeroaBrazilElwin Sharvill NEGOTIATION
Antonio CaudyArgentinaAnna Fali NEGOTIATION
Wickens NestleBrazilAsiya Javayant UNQUALIFIED
Kaitlin OstroskyUnited KingdomXuxue Feng NEGOTIATION
Stacey MacleadUnited KingdomXuxue Feng PROPOSAL
Antonio CaudyArgentinaElwin Sharvill RENEWAL
Aika InouyeCanadaStephen Shaw NEGOTIATION
Juan WieserJapanOnyama Limba PROPOSAL
Costa DilliardItalyElwin Sharvill QUALIFIED
Aditya KuskoAustraliaAsiya Javayant RENEWAL
Tony FollerIndiaStephen Shaw RENEWAL
Silvio SlusarskiIndiaIvan Magalhaes PROPOSAL
Leja CaldareraAustraliaXuxue Feng PROPOSAL
Greenwood BologniaBrazilXuxue Feng NEGOTIATION
Smith GlickUnited KingdomOnyama Limba NEW
Alejandro PerinJapanXuxue Feng UNQUALIFIED
Murillo MaletArgentinaXuxue Feng NEGOTIATION
Izzy GarufiItalyElwin Sharvill UNQUALIFIED
Francesco ShinkoArgentinaOnyama Limba RENEWAL
Alejandro PerinAustraliaOnyama Limba UNQUALIFIED
Clifford RimUnited KingdomAsiya Javayant UNQUALIFIED
Juan WieserAustraliaElwin Sharvill NEGOTIATION
Murillo MaletJapanAnna Fali PROPOSAL
Darci PoquetteIndiaOnyama Limba UNQUALIFIED
Jefferson SchemmerIndiaAmy Elsner NEW
Smith GlickSpainIoni Bowcher QUALIFIED
Jones VocelkaSpainIvan Magalhaes QUALIFIED
Claire TollnerItalyOnyama Limba QUALIFIED
Deepesh ChuiBrazilAsiya Javayant PROPOSAL
David DarakjyIndiaAmy Elsner PROPOSAL
Ashley DoeGermanyAnna Fali UNQUALIFIED
Adams MorascaItalyAnna Fali QUALIFIED
Smith GlickUnited KingdomXuxue Feng RENEWAL
Nicolas IturbideCanadaBernardo Dominic NEW
Wickens NestleAustraliaAsiya Javayant NEW
Silvio SlusarskiArgentinaStephen Shaw UNQUALIFIED
Arvin AlbaresCanadaStephen Shaw RENEWAL
Silvio SlusarskiRussiaAsiya Javayant RENEWAL
Mayumi KolmetzRussiaAsiya Javayant PROPOSAL
Clifford RimArgentinaOnyama Limba PROPOSAL
Jefferson SchemmerRussiaIvan Magalhaes NEGOTIATION
Izzy GarufiBrazilOnyama Limba QUALIFIED
Kaitlin OstroskyRussiaIoni Bowcher NEW
James ButtRussiaAnna Fali PROPOSAL
Morrow RutaRussiaBernardo Dominic RENEWAL
Jennifer AmigonGermanyAmy Elsner UNQUALIFIED
Jeanfrancois VenereRussiaBernardo Dominic NEGOTIATION
Jones VocelkaArgentinaAmy Elsner PROPOSAL
Frozen Columns
Name
Jeanfrancois Venere
Johnson Sergi
Misaki Royster
James Butt
Mujtaba Nicka
David Darakjy
James Butt
David Darakjy
Clifford Rim
Stacey Maclead
Morrow Ruta
Alejandro Perin
Claire Tollner
Antonio Caudy
Izzy Garufi
Isabel Bowley
Wickens Nestle
Octavia Malet
Nicolas Iturbide
Smith Glick
Mujtaba Nicka
Faith Gillian
Jones Vocelka
Ricardo Gaucho
Murillo Malet
Adams Morasca
Stacey Maclead
Ivar Paprocki
Clifford Rim
Silvio Slusarski
Murillo Malet
Silvio Slusarski
Chavez Briddick
Misaki Royster
Jeanfrancois Venere
Antonio Caudy
Smith Glick
Murillo Malet
Salvatore Stockham
Julie Stenseth
Francesco Shinko
Leja Caldarera
Octavia Malet
Wickens Nestle
Morrow Ruta
Faith Gillian
Murillo Malet
Misaki Royster
Aruna Figeroa
Faith Gillian
IdCountryDate
1000Argentina2026-06-07
1001Australia2026-05-15
1002India2026-06-01
1003Italy2026-05-22
1004Japan2026-05-19
1005Spain2026-05-26
1006Russia2026-06-09
1007India2026-06-10
1008Russia2026-05-19
1009Canada2026-05-22
1010United Kingdom2026-05-20
1011Argentina2026-05-27
1012India2026-06-03
1013United Kingdom2026-06-11
1014Australia2026-05-23
1015Argentina2026-05-20
1016Spain2026-06-04
1017India2026-06-06
1018India2026-05-24
1019France2026-05-21
1020Italy2026-05-13
1021India2026-06-04
1022Australia2026-05-13
1023United Kingdom2026-05-21
1024Argentina2026-05-31
1025Australia2026-05-17
1026Australia2026-05-31
1027Russia2026-05-22
1028Germany2026-05-25
1029Canada2026-06-10
1030Germany2026-06-01
1031India2026-06-06
1032Spain2026-05-28
1033Argentina2026-06-01
1034France2026-05-26
1035United Kingdom2026-06-03
1036France2026-05-26
1037Canada2026-06-11
1038Japan2026-06-09
1039Italy2026-05-17
1040Japan2026-05-30
1041Italy2026-06-07
1042United Kingdom2026-05-22
1043Spain2026-05-28
1044India2026-06-11
1045United Kingdom2026-05-16
1046Japan2026-05-27
1047Canada2026-05-16
1048Spain2026-06-10
1049Russia2026-06-09

On-Demand Data

NameIdCountryDate
Jones Vocelka1000Germany2026-06-03
Costa Dilliard1001Germany2026-06-02
Leja Caldarera1002Australia2026-05-17
Claire Tollner1003United Kingdom2026-05-13
Mayumi Kolmetz1004Italy2026-05-14
Cody Saylors1005Australia2026-05-31
Salvatore Stockham1006Brazil2026-05-19
James Butt1007Italy2026-06-04
Francesco Shinko1008Canada2026-05-26
Aika Inouye1009Russia2026-05-30
Munro Ferencz1010Germany2026-05-30
Emily Whobrey1011Canada2026-05-20
Adams Morasca1012France2026-05-22
Aditya Kusko1013Brazil2026-06-06
Mujtaba Nicka1014Japan2026-05-31
Smith Glick1015India2026-06-11
Nicolas Iturbide1016Spain2026-05-28
Kadeem Flosi1017Germany2026-05-16
Darci Poquette1018India2026-06-03
Rodrigues Campain1019France2026-05-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow RutaIndiaElwin Sharvill UNQUALIFIED
Jones VocelkaUnited KingdomStephen Shaw UNQUALIFIED
Misaki RoysterRussiaBernardo Dominic UNQUALIFIED
Mayumi KolmetzFranceXuxue Feng RENEWAL
Leja CaldareraCanadaElwin Sharvill UNQUALIFIED
Adams MorascaAustraliaAnna Fali PROPOSAL
Ivar PaprockiUnited KingdomElwin Sharvill QUALIFIED
Maisha RulapaughRussiaAnna Fali QUALIFIED
Jones VocelkaUnited KingdomBernardo Dominic NEGOTIATION
Munro FerenczFranceAmy Elsner RENEWAL
Chavez BriddickGermanyAsiya Javayant UNQUALIFIED
Cody SaylorsAustraliaAnna Fali NEGOTIATION
Faith GillianJapanXuxue Feng PROPOSAL
Emily WhobreyCanadaOnyama Limba QUALIFIED
Smith GlickUnited KingdomOnyama Limba NEW
Clifford RimCanadaBernardo Dominic PROPOSAL
Kaitlin OstroskyBrazilElwin Sharvill NEGOTIATION
Mujtaba NickaArgentinaAmy Elsner NEGOTIATION
Kaitlin OstroskyBrazilXuxue Feng QUALIFIED
Johnson SergiFranceElwin Sharvill QUALIFIED
Julie StensethAustraliaAsiya Javayant NEGOTIATION
Antonio CaudyFranceStephen Shaw PROPOSAL
Salvatore StockhamItalyAnna Fali UNQUALIFIED
Cody SaylorsBrazilOnyama Limba NEGOTIATION
Ricardo GauchoUnited KingdomStephen Shaw NEW
Clifford RimItalyBernardo Dominic RENEWAL
Mujtaba NickaIndiaBernardo Dominic NEW
Aika InouyeFranceAnna Fali NEW
Claire TollnerGermanyElwin Sharvill NEW
Emily WhobreyIndiaIoni Bowcher RENEWAL
Ivar PaprockiJapanAmy Elsner QUALIFIED
Alejandro PerinRussiaOnyama Limba QUALIFIED
Faith GillianSpainAmy Elsner PROPOSAL
Antonio CaudyGermanyAmy Elsner NEW
Ivar PaprockiRussiaXuxue Feng UNQUALIFIED
Salvatore StockhamUnited KingdomAnna Fali UNQUALIFIED
Sinclair WaycottArgentinaStephen Shaw PROPOSAL
Arvin AlbaresIndiaAmy Elsner NEW
Wickens NestleItalyAmy Elsner NEGOTIATION
Aditya KuskoUnited KingdomStephen Shaw PROPOSAL

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