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
Ricardo GauchoItalyIvan Magalhaes QUALIFIED
Murillo MaletFranceAsiya Javayant QUALIFIED
Arvin AlbaresFranceAsiya Javayant RENEWAL
Sinclair WaycottCanadaAnna Fali UNQUALIFIED
Sinclair WaycottJapanOnyama Limba PROPOSAL
Silvio SlusarskiGermanyStephen Shaw NEGOTIATION
Jones VocelkaBrazilXuxue Feng NEW
Ivar PaprockiItalyAmy Elsner UNQUALIFIED
Misaki RoysterGermanyStephen Shaw RENEWAL
Ricardo GauchoArgentinaXuxue Feng NEW
Aika InouyeItalyXuxue Feng NEW
Costa DilliardAustraliaElwin Sharvill UNQUALIFIED
Alejandro PerinBrazilStephen Shaw UNQUALIFIED
Wickens NestleUnited KingdomStephen Shaw NEW
Smith GlickArgentinaOnyama Limba NEW
Munro FerenczSpainElwin Sharvill PROPOSAL
James ButtIndiaOnyama Limba QUALIFIED
Ivar PaprockiCanadaAmy Elsner PROPOSAL
Aditya KuskoUnited KingdomStephen Shaw NEW
Munro FerenczItalyAmy Elsner NEGOTIATION
Clifford RimGermanyIvan Magalhaes RENEWAL
Maria MarrierUnited KingdomAsiya Javayant RENEWAL
Jefferson SchemmerAustraliaBernardo Dominic PROPOSAL
Johnson SergiRussiaStephen Shaw UNQUALIFIED
Maria MarrierCanadaAnna Fali NEW
Salvatore StockhamRussiaXuxue Feng RENEWAL
Leja CaldareraCanadaIvan Magalhaes UNQUALIFIED
Leon OldroydRussiaIoni Bowcher UNQUALIFIED
Alejandro PerinUnited KingdomBernardo Dominic QUALIFIED
Kaitlin OstroskyRussiaXuxue Feng QUALIFIED
Alejandro PerinSpainIoni Bowcher NEGOTIATION
Alejandro PerinJapanAnna Fali PROPOSAL
Juan WieserAustraliaStephen Shaw UNQUALIFIED
Ashley DoeBrazilElwin Sharvill QUALIFIED
Sinclair WaycottSpainElwin Sharvill NEW
Alejandro PerinItalyOnyama Limba NEGOTIATION
Jennifer AmigonRussiaOnyama Limba QUALIFIED
Kaitlin OstroskyRussiaAsiya Javayant PROPOSAL
Stacey MacleadArgentinaOnyama Limba PROPOSAL
Silvio SlusarskiFranceXuxue Feng RENEWAL
Kaitlin OstroskyBrazilElwin Sharvill UNQUALIFIED
Ricardo GauchoCanadaIoni Bowcher UNQUALIFIED
Izzy GarufiBrazilAsiya Javayant PROPOSAL
James ButtCanadaIvan Magalhaes NEW
Munro FerenczCanadaXuxue Feng PROPOSAL
Ricardo GauchoRussiaAsiya Javayant UNQUALIFIED
Deepesh ChuiArgentinaAmy Elsner PROPOSAL
Kaitlin OstroskyRussiaAsiya Javayant NEW
Antonio CaudyAustraliaIvan Magalhaes NEW
Emily WhobreyFranceAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Rodrigues CampainItalyElwin Sharvill QUALIFIED
Tony FollerBrazilAsiya Javayant QUALIFIED
Claire TollnerAustraliaIvan Magalhaes RENEWAL
Claire TollnerUnited KingdomOnyama Limba NEGOTIATION
Aruna FigeroaCanadaOnyama Limba NEGOTIATION
Adams MorascaItalyIvan Magalhaes RENEWAL
Kaitlin OstroskyJapanAmy Elsner NEGOTIATION
Ivar PaprockiItalyElwin Sharvill PROPOSAL
Smith GlickCanadaIvan Magalhaes UNQUALIFIED
Antonio CaudyJapanElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Murillo MaletCanada2025-08-31Feiner Bros NEGOTIATION21Asiya Javayant
1001Leon OldroydSpain2025-09-07Printing Dimensions QUALIFIED48Anna Fali
1002Jeanfrancois VenereAustralia2025-08-26King, Christopher A Esq NEGOTIATION84Stephen Shaw
1003Sinclair WaycottIndia2025-09-14Chapman, Ross E Esq NEW30Ivan Magalhaes
1004Misaki RoysterIndia2025-09-07Chapman, Ross E Esq NEW11Stephen Shaw
1005Jones VocelkaRussia2025-08-25King, Christopher A Esq QUALIFIED95Ivan Magalhaes
1006Leon OldroydFrance2025-08-26Truhlar And Truhlar Attys UNQUALIFIED66Ioni Bowcher
1007Munro FerenczBrazil2025-09-10Chanay, Jeffrey A Esq UNQUALIFIED34Stephen Shaw
1008Silvio SlusarskiIndia2025-08-31King, Christopher A Esq NEW66Ivan Magalhaes
1009Salvatore StockhamSpain2025-09-05Rousseaux, Michael Esq QUALIFIED90Asiya Javayant
1010Julie StensethIndia2025-08-25Truhlar And Truhlar Attys UNQUALIFIED5Elwin Sharvill
1011Stacey MacleadFrance2025-09-20Buckley Miller Wright PROPOSAL0Anna Fali
1012Salvatore StockhamJapan2025-08-23Chanay, Jeffrey A Esq NEW79Bernardo Dominic
1013Mayumi KolmetzArgentina2025-08-23Buckley Miller Wright PROPOSAL52Bernardo Dominic
1014Salvatore StockhamUnited Kingdom2025-09-10Printing Dimensions RENEWAL26Onyama Limba
1015Kaitlin OstroskyGermany2025-09-06Feiner Bros QUALIFIED92Bernardo Dominic
1016Jefferson SchemmerItaly2025-09-17Feltz Printing Service UNQUALIFIED91Asiya Javayant
1017Stacey MacleadRussia2025-08-22Rousseaux, Michael Esq QUALIFIED91Ioni Bowcher
1018Silvio SlusarskiIndia2025-09-09Commercial Press UNQUALIFIED91Anna Fali
1019Jones VocelkaItaly2025-09-17Chanay, Jeffrey A Esq QUALIFIED58Ivan Magalhaes
1020David DarakjyCanada2025-08-31King, Christopher A Esq UNQUALIFIED24Asiya Javayant
1021Clifford RimBrazil2025-09-13Benton, John B Jr PROPOSAL9Ioni Bowcher
1022Maisha RulapaughFrance2025-09-10Rousseaux, Michael Esq NEW29Amy Elsner
1023Greenwood BologniaItaly2025-08-29Printing Dimensions NEW92Onyama Limba
1024Arvin AlbaresItaly2025-09-19Feltz Printing Service NEGOTIATION65Xuxue Feng
1025Salvatore StockhamAustralia2025-09-19Truhlar And Truhlar Attys QUALIFIED15Elwin Sharvill
1026Stacey MacleadArgentina2025-08-27Feiner Bros UNQUALIFIED48Amy Elsner
1027Deepesh ChuiItaly2025-08-22King, Christopher A Esq QUALIFIED78Bernardo Dominic
1028Leon OldroydCanada2025-08-30Feiner Bros RENEWAL76Xuxue Feng
1029Kadeem FlosiCanada2025-08-24Benton, John B Jr NEW3Asiya Javayant
1030Cody SaylorsItaly2025-08-29Chanay, Jeffrey A Esq PROPOSAL30Bernardo Dominic
1031Julie StensethGermany2025-08-28Rangoni Of Florence PROPOSAL27Elwin Sharvill
1032Morrow RutaAustralia2025-09-14Truhlar And Truhlar Attys PROPOSAL66Stephen Shaw
1033Leja CaldareraArgentina2025-09-01Rousseaux, Michael Esq QUALIFIED92Elwin Sharvill
1034Leja CaldareraFrance2025-09-02Truhlar And Truhlar Attys RENEWAL24Ioni Bowcher
1035Smith GlickAustralia2025-09-10Feltz Printing Service NEW86Amy Elsner
1036Jennifer AmigonIndia2025-09-07Commercial Press RENEWAL64Amy Elsner
1037Kadeem FlosiArgentina2025-09-18Buckley Miller Wright PROPOSAL88Amy Elsner
1038Ashley DoeFrance2025-09-18Dorl, James J Esq UNQUALIFIED54Bernardo Dominic
1039Aruna FigeroaIndia2025-08-31Chapman, Ross E Esq NEW18Onyama Limba
1040Smith GlickArgentina2025-08-30Feiner Bros NEGOTIATION0Elwin Sharvill
1041Aika InouyeBrazil2025-09-11Chanay, Jeffrey A Esq PROPOSAL34Bernardo Dominic
1042Greenwood BologniaAustralia2025-08-29Truhlar And Truhlar Attys PROPOSAL44Bernardo Dominic
1043Wickens NestleIndia2025-08-25Benton, John B Jr NEGOTIATION30Amy Elsner
1044Rodrigues CampainAustralia2025-09-02Feltz Printing Service NEGOTIATION62Asiya Javayant
1045Kaitlin OstroskyGermany2025-08-26Commercial Press QUALIFIED48Anna Fali
1046Sinclair WaycottJapan2025-09-16Rangoni Of Florence NEGOTIATION83Stephen Shaw
1047Jones VocelkaAustralia2025-09-15Truhlar And Truhlar Attys NEGOTIATION29Bernardo Dominic
1048Julie StensethUnited Kingdom2025-09-05Chemel, James L Cpa NEW61Stephen Shaw
1049Ashley DoeRussia2025-09-12Buckley Miller Wright NEGOTIATION69Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierGermanyIoni Bowcher UNQUALIFIED
Mayumi KolmetzUnited KingdomAnna Fali RENEWAL
Izzy GarufiArgentinaStephen Shaw NEGOTIATION
Wickens NestleArgentinaStephen Shaw QUALIFIED
Munro FerenczFranceBernardo Dominic UNQUALIFIED
Nicolas IturbideIndiaBernardo Dominic RENEWAL
Silvio SlusarskiUnited KingdomAmy Elsner RENEWAL
Izzy GarufiUnited KingdomIvan Magalhaes QUALIFIED
Mayumi KolmetzAustraliaBernardo Dominic PROPOSAL
Clifford RimJapanBernardo Dominic NEW
Ivar PaprockiGermanyOnyama Limba RENEWAL
Arvin AlbaresCanadaBernardo Dominic RENEWAL
Chavez BriddickAustraliaIoni Bowcher UNQUALIFIED
Maria MarrierArgentinaXuxue Feng UNQUALIFIED
Stacey MacleadJapanAmy Elsner PROPOSAL
Costa DilliardItalyOnyama Limba RENEWAL
Sinclair WaycottJapanAsiya Javayant NEW
Morrow RutaArgentinaAmy Elsner RENEWAL
Alejandro PerinArgentinaIvan Magalhaes NEGOTIATION
Leon OldroydBrazilElwin Sharvill NEW
Silvio SlusarskiSpainXuxue Feng NEW
Arvin AlbaresRussiaIoni Bowcher RENEWAL
Kaitlin OstroskyUnited KingdomElwin Sharvill NEW
Jeanfrancois VenereSpainStephen Shaw PROPOSAL
Greenwood BologniaAustraliaXuxue Feng RENEWAL
Mujtaba NickaRussiaIvan Magalhaes PROPOSAL
Mujtaba NickaGermanyIvan Magalhaes NEGOTIATION
Wickens NestleUnited KingdomAnna Fali NEGOTIATION
Arvin AlbaresIndiaElwin Sharvill NEGOTIATION
Ashley DoeIndiaIoni Bowcher PROPOSAL
Jefferson SchemmerJapanAsiya Javayant QUALIFIED
Johnson SergiIndiaIvan Magalhaes NEW
Silvio SlusarskiSpainStephen Shaw QUALIFIED
Antonio CaudyFranceIoni Bowcher NEGOTIATION
Morrow RutaIndiaElwin Sharvill QUALIFIED
Maria MarrierAustraliaIoni Bowcher PROPOSAL
Alejandro PerinGermanyXuxue Feng QUALIFIED
Emily WhobreyGermanyElwin Sharvill NEGOTIATION
Nicolas IturbideJapanXuxue Feng PROPOSAL
David DarakjyArgentinaBernardo Dominic QUALIFIED
Clifford RimGermanyAsiya Javayant PROPOSAL
Kadeem FlosiSpainBernardo Dominic NEGOTIATION
Jefferson SchemmerCanadaIoni Bowcher RENEWAL
Aika InouyeArgentinaIvan Magalhaes RENEWAL
Mayumi KolmetzIndiaBernardo Dominic QUALIFIED
Leon OldroydFranceIvan Magalhaes NEW
Kadeem FlosiFranceAmy Elsner NEGOTIATION
Aruna FigeroaRussiaAmy Elsner NEGOTIATION
Munro FerenczGermanyElwin Sharvill UNQUALIFIED
Izzy GarufiGermanyBernardo Dominic NEGOTIATION
Frozen Columns
Name
Izzy Garufi
Darci Poquette
Misaki Royster
Leon Oldroyd
Leja Caldarera
Faith Gillian
James Butt
Jeanfrancois Venere
Ricardo Gaucho
Mujtaba Nicka
Darci Poquette
Darci Poquette
Octavia Malet
Smith Glick
Maria Marrier
Kadeem Flosi
Leja Caldarera
Darci Poquette
Aika Inouye
Sinclair Waycott
Antonio Caudy
Mujtaba Nicka
Sinclair Waycott
Ivar Paprocki
Tony Foller
Adams Morasca
Izzy Garufi
Smith Glick
Clifford Rim
Salvatore Stockham
Claire Tollner
Munro Ferencz
Misaki Royster
Arvin Albares
Kadeem Flosi
Jefferson Schemmer
Leon Oldroyd
Jefferson Schemmer
Octavia Malet
Alejandro Perin
Leon Oldroyd
Ivar Paprocki
Chavez Briddick
Maria Marrier
Costa Dilliard
Juan Wieser
Costa Dilliard
Mayumi Kolmetz
Emily Whobrey
Rodrigues Campain
IdCountryDate
1000United Kingdom2025-09-15
1001Australia2025-09-14
1002Italy2025-08-24
1003Italy2025-09-04
1004Spain2025-09-01
1005Spain2025-08-24
1006Russia2025-08-27
1007United Kingdom2025-08-25
1008Argentina2025-08-24
1009Italy2025-09-18
1010Argentina2025-09-16
1011Brazil2025-08-30
1012Germany2025-08-27
1013Brazil2025-08-31
1014United Kingdom2025-09-12
1015France2025-09-10
1016Japan2025-08-26
1017France2025-08-26
1018Spain2025-09-15
1019France2025-09-12
1020Brazil2025-09-14
1021Canada2025-09-18
1022Canada2025-08-24
1023Spain2025-09-13
1024Australia2025-09-17
1025Canada2025-08-30
1026Japan2025-09-11
1027Australia2025-09-09
1028France2025-08-28
1029Germany2025-08-25
1030India2025-09-18
1031Brazil2025-08-26
1032Brazil2025-09-03
1033Russia2025-08-22
1034Argentina2025-09-19
1035United Kingdom2025-09-01
1036France2025-08-28
1037Italy2025-08-28
1038Argentina2025-09-09
1039Japan2025-09-09
1040Germany2025-09-08
1041India2025-09-14
1042Canada2025-09-01
1043India2025-08-28
1044France2025-09-11
1045Japan2025-09-20
1046Japan2025-08-26
1047Argentina2025-09-19
1048Russia2025-09-14
1049Canada2025-09-12

On-Demand Data

NameIdCountryDate
Izzy Garufi1000India2025-09-04
Antonio Caudy1001France2025-09-05
Octavia Malet1002United Kingdom2025-09-12
Cody Saylors1003Argentina2025-09-16
Mujtaba Nicka1004France2025-08-27
Alejandro Perin1005Argentina2025-08-29
Silvio Slusarski1006Australia2025-09-17
Greenwood Bolognia1007Japan2025-09-17
Maisha Rulapaugh1008Russia2025-08-28
Ivar Paprocki1009Russia2025-08-26
Ashley Doe1010Japan2025-09-18
Juan Wieser1011France2025-09-01
Ricardo Gaucho1012Brazil2025-09-15
Isabel Bowley1013Argentina2025-09-15
Emily Whobrey1014Japan2025-09-20
Johnson Sergi1015Japan2025-09-05
Sinclair Waycott1016Spain2025-09-10
Izzy Garufi1017France2025-08-27
Maisha Rulapaugh1018Argentina2025-08-23
Jeanfrancois Venere1019India2025-08-27
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair WaycottAustraliaElwin Sharvill UNQUALIFIED
Leon OldroydSpainAnna Fali QUALIFIED
Claire TollnerIndiaAsiya Javayant NEW
Jones VocelkaUnited KingdomXuxue Feng QUALIFIED
Wickens NestleFranceAsiya Javayant PROPOSAL
Johnson SergiJapanAmy Elsner NEW
Aika InouyeCanadaIoni Bowcher RENEWAL
Deepesh ChuiBrazilIvan Magalhaes RENEWAL
Adams MorascaJapanAnna Fali NEGOTIATION
Darci PoquetteArgentinaElwin Sharvill NEW
Julie StensethUnited KingdomXuxue Feng NEW
David DarakjyItalyStephen Shaw NEGOTIATION
Greenwood BologniaJapanBernardo Dominic RENEWAL
Francesco ShinkoAustraliaAnna Fali QUALIFIED
Munro FerenczBrazilElwin Sharvill NEGOTIATION
Jefferson SchemmerJapanBernardo Dominic PROPOSAL
Francesco ShinkoRussiaIoni Bowcher NEGOTIATION
Faith GillianRussiaStephen Shaw NEGOTIATION
Emily WhobreyFranceXuxue Feng NEGOTIATION
Julie StensethAustraliaStephen Shaw NEW
Maria MarrierGermanyAnna Fali NEW
Ivar PaprockiGermanyStephen Shaw QUALIFIED
Leja CaldareraArgentinaStephen Shaw NEW
Jefferson SchemmerCanadaIvan Magalhaes NEW
Julie StensethFranceStephen Shaw NEW
Nicolas IturbideAustraliaElwin Sharvill NEW
Jeanfrancois VenereIndiaStephen Shaw NEGOTIATION
Ivar PaprockiIndiaBernardo Dominic QUALIFIED
Juan WieserFranceOnyama Limba NEGOTIATION
David DarakjySpainIoni Bowcher PROPOSAL
Murillo MaletItalyBernardo Dominic RENEWAL
Aika InouyeGermanyOnyama Limba RENEWAL
Tony FollerGermanyAnna Fali PROPOSAL
Kaitlin OstroskyJapanBernardo Dominic NEGOTIATION
Darci PoquetteArgentinaElwin Sharvill NEW
Sinclair WaycottIndiaBernardo Dominic NEW
Jefferson SchemmerBrazilAnna Fali RENEWAL
Chavez BriddickIndiaIoni Bowcher UNQUALIFIED
Deepesh ChuiUnited KingdomOnyama Limba PROPOSAL
Ivar PaprockiIndiaBernardo Dominic 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>