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 StockhamAustraliaAnna Fali UNQUALIFIED
Jeanfrancois VenereSpainIvan Magalhaes PROPOSAL
Johnson SergiAustraliaAsiya Javayant NEGOTIATION
Smith GlickFranceAsiya Javayant UNQUALIFIED
Stacey MacleadBrazilIoni Bowcher NEGOTIATION
Jennifer AmigonSpainAmy Elsner PROPOSAL
Arvin AlbaresArgentinaStephen Shaw PROPOSAL
Arvin AlbaresFranceAmy Elsner UNQUALIFIED
Jefferson SchemmerAustraliaElwin Sharvill PROPOSAL
Emily WhobreySpainElwin Sharvill NEW
Ashley DoeSpainOnyama Limba NEGOTIATION
Jefferson SchemmerBrazilBernardo Dominic PROPOSAL
Francesco ShinkoItalyStephen Shaw RENEWAL
Aditya KuskoUnited KingdomOnyama Limba UNQUALIFIED
Aruna FigeroaRussiaStephen Shaw PROPOSAL
Maisha RulapaughIndiaAmy Elsner RENEWAL
Leon OldroydCanadaXuxue Feng UNQUALIFIED
Ivar PaprockiArgentinaXuxue Feng QUALIFIED
Isabel BowleyJapanIoni Bowcher NEGOTIATION
Ricardo GauchoBrazilStephen Shaw QUALIFIED
Clifford RimBrazilAsiya Javayant NEGOTIATION
Darci PoquetteGermanyBernardo Dominic NEW
Wickens NestleItalyAnna Fali PROPOSAL
Costa DilliardSpainAmy Elsner PROPOSAL
Jeanfrancois VenereFranceAnna Fali QUALIFIED
Silvio SlusarskiJapanXuxue Feng QUALIFIED
Darci PoquetteArgentinaBernardo Dominic RENEWAL
Mujtaba NickaSpainIoni Bowcher PROPOSAL
Aika InouyeFranceAsiya Javayant UNQUALIFIED
Aruna FigeroaJapanOnyama Limba QUALIFIED
Mujtaba NickaArgentinaBernardo Dominic RENEWAL
Johnson SergiGermanyIoni Bowcher NEW
Adams MorascaFranceAnna Fali UNQUALIFIED
Aika InouyeFranceOnyama Limba QUALIFIED
Francesco ShinkoCanadaElwin Sharvill QUALIFIED
Clifford RimSpainIvan Magalhaes NEW
Arvin AlbaresRussiaAmy Elsner RENEWAL
Rodrigues CampainUnited KingdomStephen Shaw RENEWAL
Juan WieserArgentinaOnyama Limba RENEWAL
Ricardo GauchoJapanIoni Bowcher NEW
Juan WieserIndiaOnyama Limba NEW
Aruna FigeroaItalyIoni Bowcher UNQUALIFIED
Munro FerenczFranceBernardo Dominic NEGOTIATION
Deepesh ChuiArgentinaElwin Sharvill QUALIFIED
Greenwood BologniaJapanAsiya Javayant PROPOSAL
Jennifer AmigonArgentinaStephen Shaw UNQUALIFIED
Alejandro PerinGermanyIvan Magalhaes UNQUALIFIED
Claire TollnerFranceXuxue Feng UNQUALIFIED
Nicolas IturbideArgentinaIoni Bowcher QUALIFIED
Chavez BriddickArgentinaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Chavez BriddickBrazilBernardo Dominic UNQUALIFIED
Aditya KuskoBrazilIvan Magalhaes UNQUALIFIED
Mayumi KolmetzFranceElwin Sharvill NEW
Adams MorascaUnited KingdomAmy Elsner QUALIFIED
Kaitlin OstroskyRussiaStephen Shaw RENEWAL
Ricardo GauchoArgentinaElwin Sharvill QUALIFIED
Salvatore StockhamGermanyAsiya Javayant UNQUALIFIED
Munro FerenczRussiaAmy Elsner NEGOTIATION
Darci PoquetteCanadaOnyama Limba NEGOTIATION
Juan WieserBrazilAmy Elsner NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin AlbaresItaly2026-04-18Commercial Press UNQUALIFIED46Anna Fali
1001Tony FollerItaly2026-04-15Printing Dimensions QUALIFIED11Stephen Shaw
1002Antonio CaudyItaly2026-04-24Truhlar And Truhlar Attys QUALIFIED9Bernardo Dominic
1003Maisha RulapaughJapan2026-04-23Dorl, James J Esq UNQUALIFIED89Onyama Limba
1004Jennifer AmigonFrance2026-04-28Feltz Printing Service PROPOSAL3Elwin Sharvill
1005Ashley DoeItaly2026-04-11Chanay, Jeffrey A Esq RENEWAL93Anna Fali
1006Deepesh ChuiIndia2026-04-13Morlong Associates PROPOSAL28Bernardo Dominic
1007Clifford RimUnited Kingdom2026-04-18Chemel, James L Cpa NEGOTIATION75Asiya Javayant
1008Munro FerenczRussia2026-05-07Chemel, James L Cpa QUALIFIED93Onyama Limba
1009Morrow RutaRussia2026-04-30Chapman, Ross E Esq RENEWAL2Ioni Bowcher
1010David DarakjyArgentina2026-05-07Feltz Printing Service QUALIFIED31Ivan Magalhaes
1011Mujtaba NickaCanada2026-05-02Morlong Associates UNQUALIFIED18Stephen Shaw
1012Juan WieserItaly2026-04-17Commercial Press NEGOTIATION66Elwin Sharvill
1013Greenwood BologniaSpain2026-04-22Printing Dimensions NEW1Anna Fali
1014Misaki RoysterItaly2026-04-20Chanay, Jeffrey A Esq UNQUALIFIED41Elwin Sharvill
1015Leja CaldareraArgentina2026-04-11Feltz Printing Service PROPOSAL17Amy Elsner
1016Misaki RoysterAustralia2026-04-20Rangoni Of Florence QUALIFIED8Stephen Shaw
1017Nicolas IturbideArgentina2026-04-27Feiner Bros QUALIFIED76Ivan Magalhaes
1018Kaitlin OstroskyRussia2026-04-22Morlong Associates NEW19Ivan Magalhaes
1019Emily WhobreyUnited Kingdom2026-04-24Chapman, Ross E Esq UNQUALIFIED33Asiya Javayant
1020James ButtArgentina2026-04-14Chemel, James L Cpa NEGOTIATION67Amy Elsner
1021Johnson SergiAustralia2026-05-04Morlong Associates PROPOSAL89Elwin Sharvill
1022Aditya KuskoFrance2026-04-14Rousseaux, Michael Esq NEW46Ivan Magalhaes
1023Stacey MacleadAustralia2026-04-18King, Christopher A Esq RENEWAL22Anna Fali
1024Octavia MaletCanada2026-04-15Chemel, James L Cpa UNQUALIFIED63Ioni Bowcher
1025David DarakjyArgentina2026-05-04Chapman, Ross E Esq UNQUALIFIED71Asiya Javayant
1026Ashley DoeBrazil2026-04-27Chemel, James L Cpa RENEWAL71Ioni Bowcher
1027Costa DilliardJapan2026-04-24Dorl, James J Esq NEGOTIATION99Ivan Magalhaes
1028Maria MarrierJapan2026-04-30Commercial Press NEW14Bernardo Dominic
1029Alejandro PerinUnited Kingdom2026-04-28King, Christopher A Esq RENEWAL92Xuxue Feng
1030Silvio SlusarskiRussia2026-04-15Rousseaux, Michael Esq PROPOSAL94Ioni Bowcher
1031Greenwood BologniaJapan2026-04-13King, Christopher A Esq QUALIFIED74Ioni Bowcher
1032Ivar PaprockiArgentina2026-04-27Buckley Miller Wright NEW63Asiya Javayant
1033Isabel BowleySpain2026-04-30Truhlar And Truhlar Attys NEW91Onyama Limba
1034Aruna FigeroaGermany2026-04-26Printing Dimensions RENEWAL52Asiya Javayant
1035Kaitlin OstroskyAustralia2026-04-27Morlong Associates NEW12Onyama Limba
1036Mujtaba NickaGermany2026-04-16Benton, John B Jr NEW2Ioni Bowcher
1037Sinclair WaycottSpain2026-04-22Dorl, James J Esq NEGOTIATION74Onyama Limba
1038Salvatore StockhamJapan2026-04-19Chanay, Jeffrey A Esq NEW16Anna Fali
1039Ricardo GauchoAustralia2026-04-30Dorl, James J Esq NEGOTIATION49Asiya Javayant
1040Jones VocelkaRussia2026-04-14Chemel, James L Cpa QUALIFIED76Anna Fali
1041Jeanfrancois VenereItaly2026-04-21King, Christopher A Esq NEW62Ivan Magalhaes
1042Misaki RoysterItaly2026-04-23Chapman, Ross E Esq RENEWAL87Asiya Javayant
1043Adams MorascaAustralia2026-05-03Truhlar And Truhlar Attys RENEWAL14Ivan Magalhaes
1044Stacey MacleadRussia2026-04-11Buckley Miller Wright UNQUALIFIED20Bernardo Dominic
1045Leon OldroydCanada2026-05-09Rangoni Of Florence RENEWAL49Ioni Bowcher
1046Jennifer AmigonBrazil2026-04-11Chemel, James L Cpa NEGOTIATION57Ivan Magalhaes
1047Kaitlin OstroskyItaly2026-04-22Feltz Printing Service UNQUALIFIED23Ivan Magalhaes
1048Misaki RoysterRussia2026-04-26Morlong Associates QUALIFIED47Asiya Javayant
1049Aika InouyeAustralia2026-05-01Rangoni Of Florence QUALIFIED57Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Stacey MacleadBrazilIvan Magalhaes UNQUALIFIED
Morrow RutaBrazilIoni Bowcher QUALIFIED
Misaki RoysterAustraliaAsiya Javayant PROPOSAL
Jeanfrancois VenereArgentinaAmy Elsner PROPOSAL
Mayumi KolmetzGermanyXuxue Feng QUALIFIED
Faith GillianIndiaStephen Shaw UNQUALIFIED
Costa DilliardItalyIvan Magalhaes NEGOTIATION
Cody SaylorsAustraliaIoni Bowcher QUALIFIED
Mujtaba NickaGermanyXuxue Feng NEW
Arvin AlbaresItalyAnna Fali PROPOSAL
Claire TollnerCanadaIvan Magalhaes RENEWAL
Salvatore StockhamUnited KingdomAsiya Javayant UNQUALIFIED
David DarakjyIndiaIvan Magalhaes QUALIFIED
Leon OldroydGermanyXuxue Feng NEW
Alejandro PerinCanadaAnna Fali PROPOSAL
Cody SaylorsUnited KingdomAsiya Javayant NEGOTIATION
David DarakjyBrazilOnyama Limba NEGOTIATION
Misaki RoysterSpainElwin Sharvill NEGOTIATION
Rodrigues CampainSpainBernardo Dominic NEW
Misaki RoysterJapanOnyama Limba PROPOSAL
Sinclair WaycottCanadaElwin Sharvill PROPOSAL
Maisha RulapaughItalyAnna Fali NEW
Darci PoquetteRussiaBernardo Dominic NEW
Leon OldroydFranceXuxue Feng RENEWAL
Leon OldroydCanadaXuxue Feng UNQUALIFIED
Sinclair WaycottCanadaAsiya Javayant RENEWAL
Mayumi KolmetzAustraliaOnyama Limba UNQUALIFIED
Mujtaba NickaGermanyAsiya Javayant PROPOSAL
Rodrigues CampainArgentinaBernardo Dominic PROPOSAL
Aditya KuskoJapanBernardo Dominic RENEWAL
Adams MorascaBrazilBernardo Dominic UNQUALIFIED
Deepesh ChuiArgentinaIoni Bowcher NEW
Claire TollnerGermanyStephen Shaw RENEWAL
Jennifer AmigonItalyAsiya Javayant QUALIFIED
Silvio SlusarskiBrazilIoni Bowcher UNQUALIFIED
Adams MorascaJapanIoni Bowcher RENEWAL
Johnson SergiCanadaAmy Elsner UNQUALIFIED
Ashley DoeAustraliaIvan Magalhaes QUALIFIED
Ricardo GauchoCanadaBernardo Dominic RENEWAL
Claire TollnerUnited KingdomXuxue Feng UNQUALIFIED
Maisha RulapaughSpainIvan Magalhaes QUALIFIED
Isabel BowleyItalyIvan Magalhaes RENEWAL
Claire TollnerRussiaAsiya Javayant NEW
Jefferson SchemmerItalyBernardo Dominic PROPOSAL
Octavia MaletSpainAmy Elsner RENEWAL
Silvio SlusarskiBrazilAnna Fali PROPOSAL
Salvatore StockhamItalyXuxue Feng QUALIFIED
Maisha RulapaughJapanOnyama Limba QUALIFIED
Jones VocelkaUnited KingdomXuxue Feng UNQUALIFIED
Aika InouyeIndiaOnyama Limba NEW
Frozen Columns
Name
Kaitlin Ostrosky
Ashley Doe
Salvatore Stockham
Francesco Shinko
Stacey Maclead
Sinclair Waycott
Chavez Briddick
Leon Oldroyd
Leja Caldarera
Ricardo Gaucho
Cody Saylors
Aditya Kusko
Alejandro Perin
James Butt
Smith Glick
Morrow Ruta
Aruna Figeroa
Silvio Slusarski
Claire Tollner
Claire Tollner
Munro Ferencz
Salvatore Stockham
Aruna Figeroa
Jeanfrancois Venere
Wickens Nestle
Kaitlin Ostrosky
Maisha Rulapaugh
Smith Glick
Murillo Malet
Murillo Malet
Nicolas Iturbide
Claire Tollner
Johnson Sergi
Emily Whobrey
Juan Wieser
Claire Tollner
Tony Foller
Julie Stenseth
Misaki Royster
Juan Wieser
Munro Ferencz
Stacey Maclead
Izzy Garufi
Costa Dilliard
Alejandro Perin
Sinclair Waycott
Mujtaba Nicka
Clifford Rim
Aruna Figeroa
Munro Ferencz
IdCountryDate
1000Canada2026-04-11
1001Japan2026-05-04
1002Spain2026-04-12
1003Russia2026-05-02
1004Germany2026-05-04
1005India2026-05-04
1006Australia2026-05-01
1007France2026-05-10
1008India2026-04-11
1009Japan2026-04-26
1010Russia2026-04-27
1011France2026-04-12
1012Germany2026-04-18
1013United Kingdom2026-05-07
1014Argentina2026-04-25
1015Germany2026-04-17
1016United Kingdom2026-05-05
1017Germany2026-05-02
1018Italy2026-04-27
1019France2026-04-18
1020India2026-04-18
1021Australia2026-05-08
1022India2026-05-07
1023Germany2026-04-24
1024Argentina2026-04-24
1025Australia2026-04-15
1026Germany2026-05-05
1027Brazil2026-04-11
1028India2026-04-15
1029Spain2026-04-17
1030Spain2026-05-09
1031Russia2026-04-17
1032Germany2026-04-26
1033United Kingdom2026-04-16
1034Australia2026-05-08
1035Italy2026-04-21
1036Italy2026-05-03
1037France2026-05-07
1038Germany2026-04-14
1039Italy2026-04-11
1040United Kingdom2026-05-06
1041Germany2026-05-01
1042Argentina2026-04-15
1043Japan2026-05-01
1044Japan2026-04-23
1045France2026-04-27
1046India2026-04-30
1047France2026-04-27
1048Brazil2026-04-18
1049Italy2026-04-29

On-Demand Data

NameIdCountryDate
Sinclair Waycott1000Spain2026-04-11
Stacey Maclead1001Argentina2026-05-04
Silvio Slusarski1002France2026-04-27
David Darakjy1003Australia2026-04-25
Jeanfrancois Venere1004India2026-04-11
Jeanfrancois Venere1005India2026-05-09
Octavia Malet1006India2026-04-13
Aika Inouye1007India2026-04-23
Ashley Doe1008United Kingdom2026-05-07
Maisha Rulapaugh1009Russia2026-05-01
Darci Poquette1010Canada2026-04-12
Morrow Ruta1011Italy2026-04-24
Juan Wieser1012Argentina2026-04-27
Murillo Malet1013Germany2026-05-05
Silvio Slusarski1014United Kingdom2026-04-23
Costa Dilliard1015Argentina2026-04-18
Ashley Doe1016Brazil2026-05-06
Jones Vocelka1017Australia2026-04-22
Adams Morasca1018Germany2026-05-08
Stacey Maclead1019Russia2026-04-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia MaletUnited KingdomAsiya Javayant RENEWAL
Ivar PaprockiItalyXuxue Feng UNQUALIFIED
Leja CaldareraCanadaXuxue Feng NEGOTIATION
Cody SaylorsGermanyAnna Fali NEW
Maisha RulapaughFranceBernardo Dominic NEGOTIATION
Kaitlin OstroskyItalyElwin Sharvill NEGOTIATION
Silvio SlusarskiRussiaIvan Magalhaes QUALIFIED
Octavia MaletGermanyElwin Sharvill NEW
Alejandro PerinAustraliaAnna Fali PROPOSAL
Faith GillianAustraliaIoni Bowcher PROPOSAL
Aruna FigeroaGermanyIoni Bowcher NEGOTIATION
Antonio CaudyJapanStephen Shaw NEW
Morrow RutaArgentinaStephen Shaw NEW
Misaki RoysterItalyIoni Bowcher NEW
Aruna FigeroaUnited KingdomXuxue Feng NEGOTIATION
Deepesh ChuiJapanAnna Fali NEW
Wickens NestleItalyAsiya Javayant RENEWAL
Alejandro PerinUnited KingdomIoni Bowcher PROPOSAL
Jennifer AmigonAustraliaOnyama Limba NEW
Julie StensethIndiaElwin Sharvill NEW
Faith GillianJapanElwin Sharvill QUALIFIED
Mujtaba NickaJapanElwin Sharvill RENEWAL
Kadeem FlosiRussiaIoni Bowcher RENEWAL
Aika InouyeRussiaAmy Elsner UNQUALIFIED
Maisha RulapaughArgentinaAmy Elsner RENEWAL
Kaitlin OstroskyRussiaAnna Fali RENEWAL
Smith GlickRussiaIvan Magalhaes RENEWAL
Alejandro PerinAustraliaElwin Sharvill UNQUALIFIED
Misaki RoysterCanadaBernardo Dominic NEGOTIATION
James ButtFranceStephen Shaw RENEWAL
Alejandro PerinItalyElwin Sharvill QUALIFIED
Darci PoquetteJapanOnyama Limba QUALIFIED
David DarakjyIndiaAnna Fali UNQUALIFIED
David DarakjyRussiaAnna Fali PROPOSAL
Jefferson SchemmerFranceIoni Bowcher RENEWAL
Costa DilliardJapanOnyama Limba UNQUALIFIED
Alejandro PerinBrazilStephen Shaw QUALIFIED
Johnson SergiRussiaAmy Elsner QUALIFIED
Rodrigues CampainJapanOnyama Limba NEW
Leja CaldareraItalyXuxue Feng 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>