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
Julie StensethCanadaAnna Fali PROPOSAL
Jones VocelkaAustraliaAnna Fali UNQUALIFIED
Octavia MaletAustraliaIvan Magalhaes PROPOSAL
Stacey MacleadJapanElwin Sharvill PROPOSAL
Kaitlin OstroskySpainAnna Fali RENEWAL
Cody SaylorsJapanAsiya Javayant RENEWAL
Octavia MaletSpainIoni Bowcher PROPOSAL
Silvio SlusarskiJapanIvan Magalhaes QUALIFIED
Jones VocelkaCanadaElwin Sharvill UNQUALIFIED
Cody SaylorsSpainXuxue Feng NEW
Aika InouyeIndiaIoni Bowcher QUALIFIED
Rodrigues CampainSpainAmy Elsner NEW
Arvin AlbaresArgentinaAnna Fali QUALIFIED
Mayumi KolmetzBrazilBernardo Dominic RENEWAL
Julie StensethCanadaStephen Shaw UNQUALIFIED
Kaitlin OstroskyJapanOnyama Limba UNQUALIFIED
Jones VocelkaCanadaXuxue Feng QUALIFIED
Octavia MaletCanadaElwin Sharvill UNQUALIFIED
Nicolas IturbideBrazilBernardo Dominic NEW
Emily WhobreyGermanyIoni Bowcher PROPOSAL
Kaitlin OstroskyIndiaIoni Bowcher UNQUALIFIED
Isabel BowleyJapanAmy Elsner QUALIFIED
Stacey MacleadJapanXuxue Feng QUALIFIED
Ricardo GauchoJapanAnna Fali UNQUALIFIED
Sinclair WaycottFranceIoni Bowcher RENEWAL
Jefferson SchemmerJapanElwin Sharvill NEW
Morrow RutaSpainOnyama Limba UNQUALIFIED
Faith GillianJapanOnyama Limba NEW
Greenwood BologniaGermanyElwin Sharvill NEW
Faith GillianFranceBernardo Dominic PROPOSAL
Aika InouyeBrazilAnna Fali PROPOSAL
Aditya KuskoGermanyStephen Shaw PROPOSAL
Kaitlin OstroskyUnited KingdomElwin Sharvill NEGOTIATION
Jones VocelkaItalyElwin Sharvill RENEWAL
Costa DilliardJapanXuxue Feng NEW
Tony FollerArgentinaXuxue Feng UNQUALIFIED
Mayumi KolmetzUnited KingdomStephen Shaw PROPOSAL
David DarakjyFranceAsiya Javayant RENEWAL
Rodrigues CampainSpainAnna Fali RENEWAL
Mujtaba NickaGermanyIvan Magalhaes QUALIFIED
Stacey MacleadSpainAsiya Javayant NEW
Leja CaldareraIndiaAsiya Javayant PROPOSAL
Arvin AlbaresUnited KingdomAsiya Javayant UNQUALIFIED
Nicolas IturbideJapanAsiya Javayant RENEWAL
Aruna FigeroaItalyIoni Bowcher NEGOTIATION
Chavez BriddickArgentinaOnyama Limba RENEWAL
Kaitlin OstroskyIndiaIvan Magalhaes QUALIFIED
Aditya KuskoBrazilBernardo Dominic UNQUALIFIED
Kaitlin OstroskyGermanyAnna Fali UNQUALIFIED
Smith GlickSpainIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Clifford RimAustraliaAnna Fali NEGOTIATION
Adams MorascaItalyBernardo Dominic RENEWAL
Ashley DoeUnited KingdomElwin Sharvill NEW
Francesco ShinkoAustraliaElwin Sharvill UNQUALIFIED
Julie StensethItalyXuxue Feng PROPOSAL
Salvatore StockhamGermanyBernardo Dominic RENEWAL
Emily WhobreyJapanIvan Magalhaes NEGOTIATION
Stacey MacleadItalyIvan Magalhaes NEGOTIATION
Darci PoquetteFranceXuxue Feng NEGOTIATION
Smith GlickGermanyAmy Elsner NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Greenwood BologniaUnited Kingdom2026-05-05Feiner Bros QUALIFIED54Elwin Sharvill
1001Emily WhobreyBrazil2026-04-16Feltz Printing Service UNQUALIFIED41Ivan Magalhaes
1002Smith GlickCanada2026-04-17Rousseaux, Michael Esq NEW18Anna Fali
1003Greenwood BologniaBrazil2026-05-02Buckley Miller Wright PROPOSAL69Amy Elsner
1004Rodrigues CampainRussia2026-05-03Benton, John B Jr NEGOTIATION83Elwin Sharvill
1005James ButtGermany2026-04-26Truhlar And Truhlar Attys RENEWAL71Ioni Bowcher
1006Deepesh ChuiGermany2026-05-02Benton, John B Jr NEGOTIATION45Anna Fali
1007Cody SaylorsSpain2026-04-16Commercial Press UNQUALIFIED60Amy Elsner
1008Isabel BowleySpain2026-04-22Chanay, Jeffrey A Esq RENEWAL7Elwin Sharvill
1009Sinclair WaycottJapan2026-04-10Chanay, Jeffrey A Esq RENEWAL22Onyama Limba
1010Rodrigues CampainItaly2026-04-12Chanay, Jeffrey A Esq RENEWAL38Onyama Limba
1011Salvatore StockhamFrance2026-04-15Feltz Printing Service QUALIFIED1Amy Elsner
1012Juan WieserArgentina2026-04-12Rangoni Of Florence UNQUALIFIED65Xuxue Feng
1013Kaitlin OstroskyItaly2026-04-25Feltz Printing Service PROPOSAL84Ivan Magalhaes
1014Alejandro PerinItaly2026-05-04Chemel, James L Cpa NEGOTIATION59Xuxue Feng
1015Leon OldroydSpain2026-04-20King, Christopher A Esq NEW26Stephen Shaw
1016Jefferson SchemmerCanada2026-04-12Feiner Bros PROPOSAL23Asiya Javayant
1017Emily WhobreyArgentina2026-04-09Printing Dimensions UNQUALIFIED48Xuxue Feng
1018Aika InouyeSpain2026-05-07Commercial Press NEW49Ioni Bowcher
1019Leon OldroydFrance2026-05-05Dorl, James J Esq RENEWAL69Ioni Bowcher
1020Misaki RoysterArgentina2026-04-24King, Christopher A Esq NEW36Asiya Javayant
1021Ivar PaprockiFrance2026-04-30Printing Dimensions QUALIFIED9Amy Elsner
1022Salvatore StockhamUnited Kingdom2026-04-13Benton, John B Jr NEGOTIATION93Elwin Sharvill
1023Izzy GarufiAustralia2026-04-20Printing Dimensions QUALIFIED66Amy Elsner
1024Wickens NestleJapan2026-04-19Benton, John B Jr UNQUALIFIED31Elwin Sharvill
1025Johnson SergiSpain2026-04-28Printing Dimensions QUALIFIED87Ivan Magalhaes
1026Aditya KuskoJapan2026-04-25Feltz Printing Service PROPOSAL3Ivan Magalhaes
1027Claire TollnerCanada2026-04-22Rangoni Of Florence UNQUALIFIED12Asiya Javayant
1028Aditya KuskoCanada2026-04-25Morlong Associates NEGOTIATION5Elwin Sharvill
1029Morrow RutaGermany2026-04-13King, Christopher A Esq QUALIFIED84Xuxue Feng
1030Juan WieserGermany2026-04-25Morlong Associates NEW21Onyama Limba
1031Tony FollerRussia2026-04-11Morlong Associates UNQUALIFIED87Anna Fali
1032Jones VocelkaItaly2026-04-21Feiner Bros NEW95Amy Elsner
1033Maisha RulapaughGermany2026-04-24Chanay, Jeffrey A Esq PROPOSAL24Stephen Shaw
1034Deepesh ChuiGermany2026-04-30Buckley Miller Wright NEW42Elwin Sharvill
1035Aditya KuskoArgentina2026-04-18Dorl, James J Esq RENEWAL41Stephen Shaw
1036Maisha RulapaughRussia2026-04-24King, Christopher A Esq PROPOSAL51Asiya Javayant
1037Maria MarrierRussia2026-05-07Feiner Bros PROPOSAL84Elwin Sharvill
1038Morrow RutaArgentina2026-04-11Feltz Printing Service QUALIFIED43Onyama Limba
1039Adams MorascaRussia2026-05-06Commercial Press PROPOSAL97Bernardo Dominic
1040Cody SaylorsCanada2026-05-01Rangoni Of Florence RENEWAL55Ivan Magalhaes
1041Nicolas IturbideBrazil2026-04-24Rousseaux, Michael Esq PROPOSAL65Elwin Sharvill
1042Murillo MaletCanada2026-04-30Truhlar And Truhlar Attys QUALIFIED39Xuxue Feng
1043Ivar PaprockiArgentina2026-05-02Morlong Associates NEGOTIATION8Elwin Sharvill
1044Morrow RutaIndia2026-05-05Rousseaux, Michael Esq NEGOTIATION83Ioni Bowcher
1045Cody SaylorsItaly2026-04-16Rousseaux, Michael Esq PROPOSAL23Elwin Sharvill
1046Maria MarrierArgentina2026-04-21Rangoni Of Florence QUALIFIED46Anna Fali
1047Juan WieserFrance2026-05-06Benton, John B Jr NEW27Bernardo Dominic
1048James ButtBrazil2026-04-21Rousseaux, Michael Esq NEW67Asiya Javayant
1049Antonio CaudyGermany2026-05-07Chapman, Ross E Esq NEW35Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Nicolas IturbideRussiaOnyama Limba NEGOTIATION
Munro FerenczUnited KingdomElwin Sharvill UNQUALIFIED
Julie StensethRussiaStephen Shaw PROPOSAL
Costa DilliardUnited KingdomStephen Shaw QUALIFIED
Johnson SergiUnited KingdomBernardo Dominic QUALIFIED
Darci PoquetteBrazilAnna Fali RENEWAL
Johnson SergiArgentinaAmy Elsner RENEWAL
James ButtItalyOnyama Limba PROPOSAL
Kaitlin OstroskyJapanStephen Shaw NEGOTIATION
Maisha RulapaughItalyBernardo Dominic UNQUALIFIED
Octavia MaletArgentinaAmy Elsner NEGOTIATION
Cody SaylorsItalyIoni Bowcher RENEWAL
Deepesh ChuiFranceXuxue Feng PROPOSAL
Rodrigues CampainItalyIoni Bowcher UNQUALIFIED
Jeanfrancois VenereRussiaElwin Sharvill PROPOSAL
Aika InouyeArgentinaElwin Sharvill NEW
Antonio CaudyItalyXuxue Feng PROPOSAL
Salvatore StockhamItalyAnna Fali NEGOTIATION
Jefferson SchemmerRussiaBernardo Dominic UNQUALIFIED
Jones VocelkaArgentinaXuxue Feng PROPOSAL
Smith GlickRussiaOnyama Limba NEGOTIATION
Ricardo GauchoCanadaBernardo Dominic RENEWAL
Darci PoquetteCanadaOnyama Limba NEW
Aditya KuskoGermanyAmy Elsner UNQUALIFIED
Greenwood BologniaAustraliaAmy Elsner UNQUALIFIED
Isabel BowleyItalyStephen Shaw NEW
Rodrigues CampainJapanBernardo Dominic PROPOSAL
Costa DilliardCanadaStephen Shaw PROPOSAL
Antonio CaudyAustraliaAsiya Javayant RENEWAL
Emily WhobreyRussiaAsiya Javayant NEGOTIATION
Mujtaba NickaIndiaAsiya Javayant NEGOTIATION
Ashley DoeSpainBernardo Dominic QUALIFIED
Kaitlin OstroskyArgentinaElwin Sharvill PROPOSAL
Isabel BowleyUnited KingdomIvan Magalhaes PROPOSAL
Aditya KuskoRussiaAnna Fali NEGOTIATION
Jennifer AmigonGermanyOnyama Limba NEGOTIATION
Antonio CaudyCanadaAnna Fali UNQUALIFIED
Isabel BowleyAustraliaOnyama Limba NEGOTIATION
Greenwood BologniaItalyAmy Elsner QUALIFIED
Leon OldroydRussiaAsiya Javayant RENEWAL
Murillo MaletArgentinaAsiya Javayant PROPOSAL
Greenwood BologniaBrazilOnyama Limba NEGOTIATION
Isabel BowleyIndiaIvan Magalhaes NEGOTIATION
Nicolas IturbideItalyIoni Bowcher PROPOSAL
Jones VocelkaItalyIoni Bowcher PROPOSAL
Juan WieserJapanIoni Bowcher PROPOSAL
Leja CaldareraFranceAnna Fali RENEWAL
Salvatore StockhamFranceElwin Sharvill UNQUALIFIED
Costa DilliardRussiaAnna Fali PROPOSAL
Stacey MacleadUnited KingdomAsiya Javayant NEW
Frozen Columns
Name
Ricardo Gaucho
Tony Foller
Izzy Garufi
Chavez Briddick
Stacey Maclead
Deepesh Chui
Julie Stenseth
Aditya Kusko
Munro Ferencz
Jeanfrancois Venere
Clifford Rim
Costa Dilliard
Jefferson Schemmer
Aruna Figeroa
Nicolas Iturbide
Leja Caldarera
Murillo Malet
Rodrigues Campain
Mayumi Kolmetz
Adams Morasca
Maria Marrier
Antonio Caudy
Darci Poquette
Alejandro Perin
Rodrigues Campain
Greenwood Bolognia
Jennifer Amigon
Cody Saylors
Morrow Ruta
Adams Morasca
Antonio Caudy
Misaki Royster
Antonio Caudy
Nicolas Iturbide
Salvatore Stockham
Emily Whobrey
Misaki Royster
Juan Wieser
Morrow Ruta
Leja Caldarera
Smith Glick
Ricardo Gaucho
Misaki Royster
Deepesh Chui
Isabel Bowley
Kadeem Flosi
Greenwood Bolognia
Rodrigues Campain
Deepesh Chui
Isabel Bowley
IdCountryDate
1000Italy2026-05-01
1001Spain2026-04-12
1002Brazil2026-04-27
1003Germany2026-04-19
1004Japan2026-04-16
1005United Kingdom2026-04-21
1006France2026-04-17
1007United Kingdom2026-04-29
1008Japan2026-04-29
1009Germany2026-04-15
1010Brazil2026-05-03
1011Spain2026-04-25
1012Australia2026-05-05
1013Germany2026-04-17
1014Australia2026-04-15
1015United Kingdom2026-04-16
1016Australia2026-04-23
1017Germany2026-04-28
1018Italy2026-04-23
1019Brazil2026-04-09
1020Japan2026-04-09
1021Argentina2026-05-02
1022Germany2026-05-01
1023Brazil2026-04-11
1024Japan2026-04-26
1025France2026-04-25
1026Spain2026-05-07
1027Argentina2026-04-30
1028Japan2026-04-15
1029Argentina2026-04-10
1030Japan2026-04-19
1031Russia2026-05-03
1032Russia2026-04-30
1033Canada2026-04-21
1034Canada2026-04-29
1035France2026-05-05
1036Japan2026-04-17
1037Russia2026-05-03
1038France2026-05-05
1039Germany2026-04-15
1040Brazil2026-04-15
1041Japan2026-04-22
1042Australia2026-05-07
1043Brazil2026-04-29
1044Brazil2026-05-05
1045Australia2026-04-23
1046Argentina2026-04-29
1047Australia2026-04-14
1048Argentina2026-05-04
1049Germany2026-04-15

On-Demand Data

NameIdCountryDate
Nicolas Iturbide1000France2026-04-13
Adams Morasca1001Canada2026-04-17
Jennifer Amigon1002Russia2026-05-05
Nicolas Iturbide1003Germany2026-04-23
Juan Wieser1004Italy2026-04-25
Stacey Maclead1005Spain2026-05-06
Munro Ferencz1006India2026-04-27
Maria Marrier1007Argentina2026-04-11
Stacey Maclead1008Japan2026-05-03
Jones Vocelka1009Spain2026-04-17
Stacey Maclead1010United Kingdom2026-04-10
Nicolas Iturbide1011Brazil2026-04-18
Johnson Sergi1012Italy2026-04-19
Kadeem Flosi1013France2026-04-13
Morrow Ruta1014France2026-04-28
Izzy Garufi1015Russia2026-05-07
Aruna Figeroa1016France2026-05-02
Clifford Rim1017France2026-04-23
Maisha Rulapaugh1018France2026-04-16
Tony Foller1019Spain2026-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh ChuiFranceAsiya Javayant RENEWAL
Francesco ShinkoUnited KingdomOnyama Limba NEW
Mujtaba NickaGermanyIvan Magalhaes PROPOSAL
Alejandro PerinGermanyBernardo Dominic QUALIFIED
Francesco ShinkoItalyXuxue Feng QUALIFIED
Jefferson SchemmerFranceAsiya Javayant RENEWAL
David DarakjySpainIoni Bowcher RENEWAL
Sinclair WaycottCanadaAsiya Javayant NEW
Francesco ShinkoSpainOnyama Limba UNQUALIFIED
Izzy GarufiArgentinaStephen Shaw NEGOTIATION
Jennifer AmigonGermanyBernardo Dominic UNQUALIFIED
David DarakjyItalyOnyama Limba UNQUALIFIED
Arvin AlbaresItalyIoni Bowcher RENEWAL
Adams MorascaCanadaStephen Shaw NEGOTIATION
Jones VocelkaIndiaOnyama Limba PROPOSAL
Mujtaba NickaItalyElwin Sharvill PROPOSAL
Julie StensethItalyAmy Elsner UNQUALIFIED
Darci PoquetteBrazilIoni Bowcher QUALIFIED
Johnson SergiArgentinaElwin Sharvill RENEWAL
Chavez BriddickAustraliaXuxue Feng PROPOSAL
Leja CaldareraItalyIvan Magalhaes NEGOTIATION
Darci PoquetteUnited KingdomAnna Fali UNQUALIFIED
Mayumi KolmetzRussiaOnyama Limba RENEWAL
Faith GillianUnited KingdomXuxue Feng RENEWAL
Chavez BriddickAustraliaIvan Magalhaes UNQUALIFIED
Mayumi KolmetzFranceIoni Bowcher NEW
Clifford RimFranceBernardo Dominic NEW
Ivar PaprockiItalyIvan Magalhaes UNQUALIFIED
Clifford RimBrazilStephen Shaw RENEWAL
Isabel BowleyIndiaElwin Sharvill UNQUALIFIED
Mayumi KolmetzGermanyIvan Magalhaes QUALIFIED
Ivar PaprockiIndiaOnyama Limba UNQUALIFIED
Costa DilliardJapanAnna Fali NEW
Aika InouyeAustraliaIvan Magalhaes RENEWAL
Alejandro PerinSpainOnyama Limba NEGOTIATION
Jefferson SchemmerJapanAsiya Javayant NEW
Rodrigues CampainArgentinaIoni Bowcher UNQUALIFIED
Octavia MaletItalyAnna Fali QUALIFIED
Sinclair WaycottBrazilIoni Bowcher RENEWAL
Johnson SergiJapanBernardo Dominic QUALIFIED

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