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
Jefferson SchemmerGermanyIoni Bowcher QUALIFIED
Salvatore StockhamSpainIvan Magalhaes QUALIFIED
Maria MarrierFranceAsiya Javayant NEGOTIATION
Rodrigues CampainIndiaAnna Fali PROPOSAL
Ashley DoeGermanyIoni Bowcher PROPOSAL
Ricardo GauchoAustraliaIvan Magalhaes PROPOSAL
Juan WieserAustraliaStephen Shaw PROPOSAL
Maisha RulapaughAustraliaIvan Magalhaes PROPOSAL
Maisha RulapaughFranceAnna Fali NEGOTIATION
Francesco ShinkoGermanyElwin Sharvill NEW
Tony FollerJapanIvan Magalhaes PROPOSAL
Ricardo GauchoRussiaOnyama Limba RENEWAL
Tony FollerGermanyBernardo Dominic PROPOSAL
Juan WieserIndiaAsiya Javayant PROPOSAL
Leja CaldareraItalyIvan Magalhaes PROPOSAL
Jeanfrancois VenereSpainAsiya Javayant QUALIFIED
Izzy GarufiArgentinaAsiya Javayant NEW
Clifford RimSpainAnna Fali PROPOSAL
Misaki RoysterUnited KingdomAsiya Javayant PROPOSAL
Mayumi KolmetzCanadaOnyama Limba RENEWAL
Misaki RoysterBrazilIoni Bowcher NEGOTIATION
Darci PoquetteRussiaElwin Sharvill QUALIFIED
Deepesh ChuiIndiaStephen Shaw QUALIFIED
David DarakjyJapanIvan Magalhaes PROPOSAL
Silvio SlusarskiAustraliaXuxue Feng NEGOTIATION
Claire TollnerSpainBernardo Dominic NEW
Izzy GarufiSpainBernardo Dominic QUALIFIED
James ButtArgentinaIoni Bowcher UNQUALIFIED
Ivar PaprockiArgentinaXuxue Feng PROPOSAL
Mayumi KolmetzAustraliaIoni Bowcher UNQUALIFIED
Izzy GarufiAustraliaStephen Shaw RENEWAL
Kaitlin OstroskyAustraliaIoni Bowcher NEGOTIATION
Maisha RulapaughFranceStephen Shaw RENEWAL
Kadeem FlosiRussiaStephen Shaw PROPOSAL
Chavez BriddickBrazilAnna Fali UNQUALIFIED
Mujtaba NickaAustraliaIoni Bowcher NEW
Morrow RutaBrazilStephen Shaw QUALIFIED
Aruna FigeroaCanadaAnna Fali NEW
Faith GillianFranceAmy Elsner QUALIFIED
Smith GlickBrazilXuxue Feng NEGOTIATION
Leon OldroydJapanElwin Sharvill NEGOTIATION
Mayumi KolmetzBrazilStephen Shaw RENEWAL
Morrow RutaFranceOnyama Limba NEW
Kadeem FlosiCanadaElwin Sharvill RENEWAL
Juan WieserCanadaAmy Elsner UNQUALIFIED
Claire TollnerBrazilXuxue Feng NEGOTIATION
Maria MarrierGermanyStephen Shaw PROPOSAL
Claire TollnerUnited KingdomAmy Elsner RENEWAL
Kadeem FlosiCanadaStephen Shaw UNQUALIFIED
Maria MarrierIndiaAmy Elsner QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Cody SaylorsJapanStephen Shaw UNQUALIFIED
Greenwood BologniaCanadaXuxue Feng PROPOSAL
Misaki RoysterBrazilOnyama Limba QUALIFIED
Kadeem FlosiUnited KingdomAmy Elsner NEGOTIATION
James ButtJapanStephen Shaw QUALIFIED
Chavez BriddickSpainOnyama Limba NEW
Aditya KuskoIndiaAnna Fali UNQUALIFIED
Aika InouyeIndiaIoni Bowcher RENEWAL
Juan WieserItalyIoni Bowcher NEGOTIATION
Claire TollnerSpainAmy Elsner QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer AmigonIndia2025-07-25Morlong Associates NEGOTIATION37Anna Fali
1001Adams MorascaRussia2025-07-14Rousseaux, Michael Esq QUALIFIED91Asiya Javayant
1002Claire TollnerGermany2025-07-31Benton, John B Jr RENEWAL59Xuxue Feng
1003Izzy GarufiRussia2025-08-06King, Christopher A Esq QUALIFIED40Bernardo Dominic
1004Ashley DoeIndia2025-08-05Truhlar And Truhlar Attys QUALIFIED47Onyama Limba
1005Tony FollerCanada2025-07-22King, Christopher A Esq NEW93Xuxue Feng
1006Murillo MaletItaly2025-07-16Chemel, James L Cpa QUALIFIED47Asiya Javayant
1007Misaki RoysterAustralia2025-07-30Morlong Associates UNQUALIFIED52Ioni Bowcher
1008Aruna FigeroaBrazil2025-07-22Chemel, James L Cpa PROPOSAL1Amy Elsner
1009Smith GlickSpain2025-08-05Rangoni Of Florence QUALIFIED76Asiya Javayant
1010Maisha RulapaughUnited Kingdom2025-08-07Chanay, Jeffrey A Esq NEGOTIATION23Asiya Javayant
1011Sinclair WaycottItaly2025-07-12Chapman, Ross E Esq QUALIFIED86Asiya Javayant
1012Misaki RoysterItaly2025-08-04Chemel, James L Cpa UNQUALIFIED31Ioni Bowcher
1013Salvatore StockhamGermany2025-07-21Buckley Miller Wright UNQUALIFIED43Anna Fali
1014Izzy GarufiCanada2025-07-14Buckley Miller Wright UNQUALIFIED90Elwin Sharvill
1015Mujtaba NickaFrance2025-08-03Chemel, James L Cpa NEGOTIATION81Stephen Shaw
1016Misaki RoysterIndia2025-08-03Rousseaux, Michael Esq UNQUALIFIED93Ivan Magalhaes
1017Tony FollerArgentina2025-08-02Rousseaux, Michael Esq RENEWAL13Onyama Limba
1018Jeanfrancois VenereRussia2025-07-21Truhlar And Truhlar Attys RENEWAL43Anna Fali
1019Ashley DoeItaly2025-07-18Morlong Associates PROPOSAL40Elwin Sharvill
1020Murillo MaletBrazil2025-07-14Chanay, Jeffrey A Esq NEGOTIATION52Asiya Javayant
1021Julie StensethItaly2025-07-16Dorl, James J Esq RENEWAL61Stephen Shaw
1022Leon OldroydFrance2025-08-01Benton, John B Jr PROPOSAL43Amy Elsner
1023Jones VocelkaIndia2025-08-04Morlong Associates QUALIFIED66Onyama Limba
1024Julie StensethUnited Kingdom2025-07-26King, Christopher A Esq UNQUALIFIED99Xuxue Feng
1025Stacey MacleadRussia2025-08-01Buckley Miller Wright NEW47Anna Fali
1026Salvatore StockhamArgentina2025-07-31Chanay, Jeffrey A Esq UNQUALIFIED3Onyama Limba
1027Jennifer AmigonBrazil2025-07-15Buckley Miller Wright NEGOTIATION78Elwin Sharvill
1028Jennifer AmigonFrance2025-07-14Morlong Associates UNQUALIFIED14Xuxue Feng
1029Jennifer AmigonIndia2025-07-25Morlong Associates PROPOSAL46Amy Elsner
1030Adams MorascaItaly2025-07-20Truhlar And Truhlar Attys NEW36Ioni Bowcher
1031Nicolas IturbideJapan2025-08-03Truhlar And Truhlar Attys UNQUALIFIED26Xuxue Feng
1032Nicolas IturbideFrance2025-08-04Morlong Associates PROPOSAL37Ivan Magalhaes
1033Ricardo GauchoSpain2025-07-11Feltz Printing Service UNQUALIFIED16Amy Elsner
1034David DarakjyRussia2025-07-10Commercial Press NEW58Xuxue Feng
1035Ivar PaprockiUnited Kingdom2025-07-16Morlong Associates QUALIFIED83Anna Fali
1036Misaki RoysterJapan2025-07-24King, Christopher A Esq QUALIFIED82Ioni Bowcher
1037Faith GillianArgentina2025-08-08Dorl, James J Esq NEW24Elwin Sharvill
1038Maria MarrierSpain2025-07-14Printing Dimensions RENEWAL82Amy Elsner
1039Darci PoquetteAustralia2025-07-13Morlong Associates PROPOSAL5Elwin Sharvill
1040Ricardo GauchoFrance2025-07-27Chemel, James L Cpa PROPOSAL48Ivan Magalhaes
1041Cody SaylorsGermany2025-07-26King, Christopher A Esq NEGOTIATION78Elwin Sharvill
1042Juan WieserGermany2025-08-02Morlong Associates NEGOTIATION76Xuxue Feng
1043Faith GillianJapan2025-08-01Chanay, Jeffrey A Esq NEGOTIATION39Onyama Limba
1044Claire TollnerJapan2025-07-26Printing Dimensions NEGOTIATION51Xuxue Feng
1045Maisha RulapaughRussia2025-07-27Chanay, Jeffrey A Esq NEGOTIATION51Ioni Bowcher
1046Munro FerenczItaly2025-08-01Printing Dimensions NEGOTIATION57Anna Fali
1047Smith GlickUnited Kingdom2025-08-02Chanay, Jeffrey A Esq NEGOTIATION54Anna Fali
1048Salvatore StockhamAustralia2025-07-27Chapman, Ross E Esq UNQUALIFIED93Ivan Magalhaes
1049Adams MorascaSpain2025-08-08Chapman, Ross E Esq NEGOTIATION37Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Francesco ShinkoGermanyXuxue Feng NEW
Maisha RulapaughIndiaBernardo Dominic RENEWAL
James ButtGermanyAsiya Javayant RENEWAL
Izzy GarufiUnited KingdomAnna Fali UNQUALIFIED
Munro FerenczCanadaOnyama Limba UNQUALIFIED
Cody SaylorsUnited KingdomIvan Magalhaes QUALIFIED
Francesco ShinkoArgentinaElwin Sharvill UNQUALIFIED
Leon OldroydUnited KingdomAnna Fali NEW
Silvio SlusarskiIndiaOnyama Limba NEW
Misaki RoysterRussiaAsiya Javayant RENEWAL
Leja CaldareraUnited KingdomXuxue Feng QUALIFIED
Costa DilliardBrazilStephen Shaw PROPOSAL
Isabel BowleyCanadaIoni Bowcher QUALIFIED
Isabel BowleySpainAsiya Javayant QUALIFIED
Octavia MaletIndiaXuxue Feng NEW
Aika InouyeUnited KingdomIoni Bowcher NEGOTIATION
Jeanfrancois VenereGermanyBernardo Dominic QUALIFIED
Misaki RoysterItalyOnyama Limba RENEWAL
Kaitlin OstroskyGermanyAmy Elsner PROPOSAL
Johnson SergiSpainAnna Fali NEW
Ivar PaprockiBrazilIoni Bowcher UNQUALIFIED
Aruna FigeroaJapanAsiya Javayant RENEWAL
Kadeem FlosiArgentinaXuxue Feng PROPOSAL
David DarakjyRussiaIvan Magalhaes QUALIFIED
Murillo MaletAustraliaElwin Sharvill UNQUALIFIED
Smith GlickCanadaElwin Sharvill PROPOSAL
Arvin AlbaresIndiaAnna Fali PROPOSAL
Mayumi KolmetzArgentinaBernardo Dominic QUALIFIED
Sinclair WaycottJapanAmy Elsner NEW
Emily WhobreyGermanyElwin Sharvill NEGOTIATION
James ButtGermanyXuxue Feng NEGOTIATION
Kadeem FlosiBrazilAsiya Javayant RENEWAL
Rodrigues CampainRussiaBernardo Dominic NEGOTIATION
Johnson SergiAustraliaIoni Bowcher NEGOTIATION
Francesco ShinkoJapanBernardo Dominic RENEWAL
Greenwood BologniaRussiaIvan Magalhaes RENEWAL
Silvio SlusarskiBrazilOnyama Limba QUALIFIED
Faith GillianRussiaIvan Magalhaes RENEWAL
Leon OldroydCanadaXuxue Feng QUALIFIED
Francesco ShinkoJapanXuxue Feng PROPOSAL
Emily WhobreyArgentinaStephen Shaw PROPOSAL
Clifford RimArgentinaAmy Elsner NEW
Deepesh ChuiIndiaBernardo Dominic QUALIFIED
Leon OldroydSpainElwin Sharvill PROPOSAL
Costa DilliardUnited KingdomAmy Elsner UNQUALIFIED
Mayumi KolmetzIndiaAnna Fali NEGOTIATION
Clifford RimSpainAmy Elsner NEW
Alejandro PerinSpainAnna Fali UNQUALIFIED
Izzy GarufiUnited KingdomIoni Bowcher RENEWAL
Darci PoquetteIndiaOnyama Limba UNQUALIFIED
Frozen Columns
Name
Faith Gillian
Stacey Maclead
Clifford Rim
Greenwood Bolognia
Munro Ferencz
Clifford Rim
Juan Wieser
Munro Ferencz
Silvio Slusarski
Izzy Garufi
Isabel Bowley
Juan Wieser
Ivar Paprocki
Francesco Shinko
Silvio Slusarski
Costa Dilliard
Sinclair Waycott
Sinclair Waycott
Ashley Doe
Stacey Maclead
Ricardo Gaucho
Claire Tollner
Maisha Rulapaugh
Leja Caldarera
Claire Tollner
Maisha Rulapaugh
Morrow Ruta
Murillo Malet
Salvatore Stockham
Deepesh Chui
Aika Inouye
Isabel Bowley
Ivar Paprocki
Leon Oldroyd
Jeanfrancois Venere
Murillo Malet
Leja Caldarera
Silvio Slusarski
Smith Glick
Sinclair Waycott
Nicolas Iturbide
Murillo Malet
Aruna Figeroa
Jennifer Amigon
Ivar Paprocki
Ashley Doe
Smith Glick
David Darakjy
Cody Saylors
Costa Dilliard
IdCountryDate
1000Spain2025-07-29
1001Brazil2025-08-03
1002Spain2025-07-27
1003Argentina2025-07-25
1004Canada2025-08-02
1005Argentina2025-07-24
1006Russia2025-08-04
1007Germany2025-07-30
1008France2025-07-23
1009Australia2025-07-24
1010Brazil2025-07-13
1011France2025-07-26
1012Spain2025-07-18
1013Spain2025-07-22
1014Australia2025-08-01
1015Argentina2025-07-28
1016Germany2025-07-28
1017France2025-08-04
1018France2025-07-11
1019Russia2025-07-25
1020United Kingdom2025-07-23
1021Italy2025-07-27
1022Italy2025-08-03
1023Australia2025-08-02
1024Argentina2025-08-06
1025Brazil2025-08-02
1026Russia2025-07-15
1027Australia2025-07-11
1028Italy2025-07-11
1029Germany2025-08-07
1030Germany2025-08-04
1031Russia2025-08-02
1032Argentina2025-08-06
1033Italy2025-08-06
1034Germany2025-07-11
1035Argentina2025-08-05
1036India2025-07-19
1037United Kingdom2025-07-24
1038Australia2025-08-05
1039France2025-07-13
1040Australia2025-07-10
1041Japan2025-08-07
1042France2025-08-02
1043United Kingdom2025-07-31
1044Germany2025-07-28
1045United Kingdom2025-07-15
1046Brazil2025-08-07
1047United Kingdom2025-07-18
1048Spain2025-07-30
1049Australia2025-07-10

On-Demand Data

NameIdCountryDate
Antonio Caudy1000United Kingdom2025-07-12
Julie Stenseth1001Russia2025-07-11
Izzy Garufi1002Argentina2025-08-06
Aika Inouye1003Russia2025-07-28
Murillo Malet1004Russia2025-07-16
Claire Tollner1005United Kingdom2025-07-10
Aika Inouye1006France2025-08-01
Arvin Albares1007Germany2025-07-17
Jones Vocelka1008Canada2025-07-19
Aika Inouye1009United Kingdom2025-07-24
Jeanfrancois Venere1010Japan2025-07-20
Claire Tollner1011Germany2025-07-21
Darci Poquette1012Canada2025-08-01
Silvio Slusarski1013India2025-08-07
Maria Marrier1014Germany2025-07-19
Johnson Sergi1015Germany2025-07-20
Leon Oldroyd1016Canada2025-08-06
Ashley Doe1017Australia2025-07-16
Sinclair Waycott1018Argentina2025-07-10
Ivar Paprocki1019Australia2025-07-21
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David DarakjyCanadaAnna Fali NEGOTIATION
Jennifer AmigonSpainBernardo Dominic RENEWAL
Sinclair WaycottRussiaAmy Elsner PROPOSAL
Octavia MaletAustraliaStephen Shaw QUALIFIED
Sinclair WaycottJapanAmy Elsner NEGOTIATION
Silvio SlusarskiRussiaBernardo Dominic QUALIFIED
Izzy GarufiCanadaStephen Shaw QUALIFIED
Arvin AlbaresItalyAnna Fali QUALIFIED
Salvatore StockhamArgentinaXuxue Feng PROPOSAL
Sinclair WaycottSpainXuxue Feng QUALIFIED
Maria MarrierRussiaElwin Sharvill PROPOSAL
Octavia MaletIndiaOnyama Limba UNQUALIFIED
Silvio SlusarskiArgentinaStephen Shaw UNQUALIFIED
David DarakjyJapanStephen Shaw PROPOSAL
Chavez BriddickJapanAmy Elsner NEW
Isabel BowleyIndiaIvan Magalhaes UNQUALIFIED
Morrow RutaFranceIvan Magalhaes UNQUALIFIED
Misaki RoysterIndiaXuxue Feng PROPOSAL
Mujtaba NickaUnited KingdomAnna Fali UNQUALIFIED
Jeanfrancois VenereRussiaIvan Magalhaes PROPOSAL
Morrow RutaFranceOnyama Limba NEW
Antonio CaudyAustraliaStephen Shaw UNQUALIFIED
Julie StensethSpainXuxue Feng UNQUALIFIED
Jefferson SchemmerAustraliaAnna Fali RENEWAL
Leja CaldareraRussiaAsiya Javayant UNQUALIFIED
Jennifer AmigonGermanyElwin Sharvill NEW
Leja CaldareraUnited KingdomOnyama Limba NEW
Jones VocelkaUnited KingdomAmy Elsner UNQUALIFIED
Kadeem FlosiBrazilOnyama Limba NEGOTIATION
Rodrigues CampainSpainIoni Bowcher UNQUALIFIED
Smith GlickIndiaElwin Sharvill RENEWAL
Mayumi KolmetzUnited KingdomElwin Sharvill QUALIFIED
Isabel BowleyAustraliaAmy Elsner UNQUALIFIED
Greenwood BologniaItalyElwin Sharvill QUALIFIED
Clifford RimUnited KingdomOnyama Limba QUALIFIED
Morrow RutaFranceIoni Bowcher NEGOTIATION
Aruna FigeroaUnited KingdomStephen Shaw UNQUALIFIED
David DarakjyIndiaAsiya Javayant UNQUALIFIED
Misaki RoysterIndiaIoni Bowcher NEGOTIATION
David DarakjyItalyIvan Magalhaes 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>