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
Emily WhobreyUnited KingdomElwin Sharvill NEW
Rodrigues CampainFranceAmy Elsner PROPOSAL
Clifford RimAustraliaIvan Magalhaes NEGOTIATION
Johnson SergiIndiaAnna Fali PROPOSAL
Morrow RutaAustraliaOnyama Limba UNQUALIFIED
Adams MorascaUnited KingdomStephen Shaw RENEWAL
Octavia MaletItalyStephen Shaw RENEWAL
Leon OldroydItalyBernardo Dominic NEW
Silvio SlusarskiRussiaBernardo Dominic NEW
Julie StensethJapanIoni Bowcher NEGOTIATION
Rodrigues CampainBrazilXuxue Feng NEGOTIATION
Kadeem FlosiIndiaBernardo Dominic PROPOSAL
Deepesh ChuiJapanOnyama Limba UNQUALIFIED
Clifford RimIndiaAsiya Javayant QUALIFIED
Aika InouyeItalyAmy Elsner UNQUALIFIED
Misaki RoysterBrazilElwin Sharvill UNQUALIFIED
David DarakjyBrazilIoni Bowcher PROPOSAL
Ashley DoeGermanyOnyama Limba NEW
Francesco ShinkoJapanElwin Sharvill PROPOSAL
Leja CaldareraAustraliaBernardo Dominic UNQUALIFIED
Clifford RimGermanyElwin Sharvill UNQUALIFIED
Maria MarrierIndiaStephen Shaw UNQUALIFIED
Kadeem FlosiArgentinaIoni Bowcher UNQUALIFIED
Greenwood BologniaBrazilAsiya Javayant UNQUALIFIED
Tony FollerIndiaOnyama Limba PROPOSAL
Ivar PaprockiIndiaIvan Magalhaes UNQUALIFIED
James ButtArgentinaElwin Sharvill UNQUALIFIED
Jennifer AmigonIndiaAmy Elsner UNQUALIFIED
Ivar PaprockiUnited KingdomStephen Shaw RENEWAL
Mujtaba NickaSpainElwin Sharvill PROPOSAL
Chavez BriddickCanadaAnna Fali PROPOSAL
Ivar PaprockiArgentinaStephen Shaw NEGOTIATION
Munro FerenczBrazilAnna Fali QUALIFIED
Emily WhobreyIndiaAsiya Javayant QUALIFIED
Aditya KuskoBrazilAnna Fali NEGOTIATION
Mayumi KolmetzAustraliaIoni Bowcher NEW
Chavez BriddickAustraliaOnyama Limba PROPOSAL
Kaitlin OstroskyUnited KingdomAsiya Javayant PROPOSAL
Adams MorascaBrazilElwin Sharvill NEW
Tony FollerArgentinaElwin Sharvill RENEWAL
Stacey MacleadGermanyIoni Bowcher NEGOTIATION
Emily WhobreySpainAnna Fali PROPOSAL
Ivar PaprockiGermanyOnyama Limba NEGOTIATION
Jeanfrancois VenereAustraliaAmy Elsner UNQUALIFIED
Maisha RulapaughArgentinaXuxue Feng UNQUALIFIED
Francesco ShinkoUnited KingdomOnyama Limba NEW
Aditya KuskoCanadaBernardo Dominic QUALIFIED
Aditya KuskoGermanyIoni Bowcher QUALIFIED
Mujtaba NickaCanadaAsiya Javayant UNQUALIFIED
Leon OldroydItalyStephen Shaw PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Maisha RulapaughCanadaOnyama Limba QUALIFIED
Deepesh ChuiJapanElwin Sharvill RENEWAL
Aditya KuskoBrazilBernardo Dominic QUALIFIED
Smith GlickIndiaIvan Magalhaes NEGOTIATION
Sinclair WaycottUnited KingdomAnna Fali NEW
Mujtaba NickaIndiaAnna Fali QUALIFIED
Ashley DoeIndiaXuxue Feng QUALIFIED
Jefferson SchemmerGermanyXuxue Feng QUALIFIED
Isabel BowleyIndiaXuxue Feng NEGOTIATION
Chavez BriddickGermanyAmy Elsner UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues CampainCanada2026-04-27Printing Dimensions PROPOSAL39Anna Fali
1001Ivar PaprockiSpain2026-04-17Printing Dimensions PROPOSAL52Anna Fali
1002Greenwood BologniaRussia2026-04-10Truhlar And Truhlar Attys PROPOSAL8Xuxue Feng
1003Stacey MacleadArgentina2026-04-02Truhlar And Truhlar Attys PROPOSAL32Stephen Shaw
1004Octavia MaletUnited Kingdom2026-04-20Morlong Associates UNQUALIFIED65Onyama Limba
1005Sinclair WaycottJapan2026-04-19King, Christopher A Esq NEGOTIATION25Xuxue Feng
1006Emily WhobreyItaly2026-04-05Rangoni Of Florence UNQUALIFIED9Ivan Magalhaes
1007Silvio SlusarskiGermany2026-04-21Chanay, Jeffrey A Esq QUALIFIED42Bernardo Dominic
1008Morrow RutaCanada2026-04-21Benton, John B Jr UNQUALIFIED14Onyama Limba
1009Maisha RulapaughIndia2026-04-20Rangoni Of Florence NEW28Ivan Magalhaes
1010Ivar PaprockiCanada2026-04-01Benton, John B Jr QUALIFIED10Asiya Javayant
1011Kaitlin OstroskyArgentina2026-04-01Chapman, Ross E Esq UNQUALIFIED97Stephen Shaw
1012Maria MarrierBrazil2026-04-05King, Christopher A Esq UNQUALIFIED10Xuxue Feng
1013Wickens NestleCanada2026-04-25Rousseaux, Michael Esq NEW23Ioni Bowcher
1014Kaitlin OstroskyUnited Kingdom2026-04-22Commercial Press RENEWAL31Ioni Bowcher
1015Rodrigues CampainFrance2026-04-03Feltz Printing Service RENEWAL21Ivan Magalhaes
1016Alejandro PerinUnited Kingdom2026-04-09Benton, John B Jr QUALIFIED68Onyama Limba
1017Cody SaylorsAustralia2026-04-19Rousseaux, Michael Esq UNQUALIFIED19Xuxue Feng
1018Mayumi KolmetzIndia2026-04-04Feiner Bros RENEWAL86Amy Elsner
1019Tony FollerSpain2026-04-18Feiner Bros QUALIFIED59Ioni Bowcher
1020Alejandro PerinRussia2026-04-11Morlong Associates NEW49Ioni Bowcher
1021Nicolas IturbideGermany2026-04-24Morlong Associates UNQUALIFIED34Ioni Bowcher
1022Izzy GarufiIndia2026-04-15Dorl, James J Esq RENEWAL18Elwin Sharvill
1023Octavia MaletArgentina2026-04-10Rousseaux, Michael Esq RENEWAL55Elwin Sharvill
1024James ButtAustralia2026-04-11Morlong Associates QUALIFIED65Amy Elsner
1025Munro FerenczFrance2026-04-09Printing Dimensions PROPOSAL39Asiya Javayant
1026Clifford RimJapan2026-04-14Morlong Associates QUALIFIED10Amy Elsner
1027Silvio SlusarskiJapan2026-04-12Dorl, James J Esq NEGOTIATION71Ioni Bowcher
1028Jeanfrancois VenereRussia2026-04-10Dorl, James J Esq PROPOSAL66Asiya Javayant
1029James ButtAustralia2026-03-31Dorl, James J Esq NEGOTIATION10Asiya Javayant
1030Kadeem FlosiRussia2026-04-22Benton, John B Jr RENEWAL72Onyama Limba
1031Kaitlin OstroskyGermany2026-04-13Chanay, Jeffrey A Esq PROPOSAL73Elwin Sharvill
1032Leja CaldareraBrazil2026-03-31Buckley Miller Wright NEW73Ioni Bowcher
1033Faith GillianCanada2026-04-23Buckley Miller Wright NEGOTIATION57Elwin Sharvill
1034Mujtaba NickaRussia2026-04-14Rangoni Of Florence NEGOTIATION65Ivan Magalhaes
1035Maria MarrierGermany2026-04-20Rousseaux, Michael Esq RENEWAL58Ioni Bowcher
1036Stacey MacleadSpain2026-04-19Chemel, James L Cpa PROPOSAL76Asiya Javayant
1037Cody SaylorsItaly2026-04-23Dorl, James J Esq QUALIFIED12Ivan Magalhaes
1038Munro FerenczJapan2026-04-18Chemel, James L Cpa NEW70Ioni Bowcher
1039Emily WhobreyIndia2026-04-21Printing Dimensions UNQUALIFIED48Onyama Limba
1040Izzy GarufiRussia2026-04-18Printing Dimensions RENEWAL38Ivan Magalhaes
1041Ashley DoeCanada2026-04-01Printing Dimensions PROPOSAL72Stephen Shaw
1042Stacey MacleadIndia2026-03-30Morlong Associates UNQUALIFIED84Ivan Magalhaes
1043Kadeem FlosiRussia2026-03-31Rousseaux, Michael Esq PROPOSAL9Anna Fali
1044Alejandro PerinBrazil2026-04-01Morlong Associates PROPOSAL24Ioni Bowcher
1045Adams MorascaJapan2026-04-27Chemel, James L Cpa NEGOTIATION46Asiya Javayant
1046Leon OldroydFrance2026-04-25King, Christopher A Esq NEW70Ivan Magalhaes
1047Claire TollnerJapan2026-04-11Rousseaux, Michael Esq PROPOSAL46Ivan Magalhaes
1048Arvin AlbaresCanada2026-04-24Truhlar And Truhlar Attys RENEWAL11Bernardo Dominic
1049Aika InouyeUnited Kingdom2026-04-28Morlong Associates NEGOTIATION50Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
James ButtRussiaOnyama Limba RENEWAL
Juan WieserCanadaAmy Elsner UNQUALIFIED
Adams MorascaFranceIvan Magalhaes QUALIFIED
Misaki RoysterSpainXuxue Feng QUALIFIED
Izzy GarufiGermanyBernardo Dominic RENEWAL
Isabel BowleyGermanyIvan Magalhaes UNQUALIFIED
Silvio SlusarskiJapanAnna Fali NEGOTIATION
Mayumi KolmetzIndiaAmy Elsner QUALIFIED
Arvin AlbaresArgentinaIvan Magalhaes RENEWAL
Costa DilliardBrazilIvan Magalhaes QUALIFIED
Juan WieserGermanyOnyama Limba NEGOTIATION
Aditya KuskoGermanyAmy Elsner NEW
Faith GillianFranceAsiya Javayant QUALIFIED
Rodrigues CampainSpainElwin Sharvill NEW
Maria MarrierGermanyAnna Fali PROPOSAL
Ashley DoeJapanAnna Fali PROPOSAL
Ricardo GauchoFranceBernardo Dominic RENEWAL
Rodrigues CampainBrazilStephen Shaw NEGOTIATION
Alejandro PerinBrazilXuxue Feng NEW
Sinclair WaycottAustraliaStephen Shaw PROPOSAL
Tony FollerFranceIvan Magalhaes UNQUALIFIED
Chavez BriddickUnited KingdomStephen Shaw NEGOTIATION
Ricardo GauchoItalyOnyama Limba UNQUALIFIED
Julie StensethGermanyAnna Fali PROPOSAL
Darci PoquetteJapanIvan Magalhaes NEW
Alejandro PerinRussiaOnyama Limba UNQUALIFIED
Leja CaldareraUnited KingdomXuxue Feng QUALIFIED
Aruna FigeroaArgentinaOnyama Limba PROPOSAL
Adams MorascaItalyAsiya Javayant PROPOSAL
Salvatore StockhamRussiaElwin Sharvill RENEWAL
Maria MarrierBrazilAsiya Javayant UNQUALIFIED
Smith GlickAustraliaStephen Shaw NEGOTIATION
Morrow RutaRussiaAmy Elsner UNQUALIFIED
Ivar PaprockiUnited KingdomBernardo Dominic NEW
Jennifer AmigonItalyStephen Shaw NEGOTIATION
Jeanfrancois VenereArgentinaBernardo Dominic NEGOTIATION
Deepesh ChuiBrazilElwin Sharvill QUALIFIED
Leja CaldareraGermanyIvan Magalhaes NEGOTIATION
Adams MorascaCanadaElwin Sharvill NEW
Johnson SergiArgentinaAsiya Javayant QUALIFIED
Tony FollerRussiaStephen Shaw QUALIFIED
Smith GlickCanadaAnna Fali RENEWAL
Ashley DoeArgentinaAmy Elsner RENEWAL
Costa DilliardRussiaIvan Magalhaes NEW
Leon OldroydSpainElwin Sharvill QUALIFIED
Maisha RulapaughFranceIvan Magalhaes PROPOSAL
Johnson SergiArgentinaOnyama Limba QUALIFIED
Morrow RutaAustraliaAsiya Javayant NEW
Smith GlickRussiaIoni Bowcher UNQUALIFIED
Ashley DoeFranceIoni Bowcher NEGOTIATION
Frozen Columns
Name
Smith Glick
Deepesh Chui
Maria Marrier
Sinclair Waycott
Mayumi Kolmetz
Leja Caldarera
Wickens Nestle
Claire Tollner
Rodrigues Campain
Octavia Malet
Darci Poquette
Sinclair Waycott
Sinclair Waycott
Mayumi Kolmetz
Adams Morasca
Murillo Malet
James Butt
Arvin Albares
Jeanfrancois Venere
Misaki Royster
Salvatore Stockham
Murillo Malet
Darci Poquette
Cody Saylors
Emily Whobrey
Sinclair Waycott
Maisha Rulapaugh
Ashley Doe
Izzy Garufi
Clifford Rim
Nicolas Iturbide
Ashley Doe
Tony Foller
Clifford Rim
Claire Tollner
Aika Inouye
Clifford Rim
Aditya Kusko
Aika Inouye
Jennifer Amigon
Tony Foller
Clifford Rim
Claire Tollner
Isabel Bowley
Tony Foller
Munro Ferencz
Silvio Slusarski
Deepesh Chui
Kaitlin Ostrosky
Morrow Ruta
IdCountryDate
1000Spain2026-04-11
1001Canada2026-04-17
1002Canada2026-03-30
1003Spain2026-04-24
1004United Kingdom2026-04-26
1005Italy2026-04-03
1006Spain2026-04-19
1007India2026-04-15
1008United Kingdom2026-04-25
1009Italy2026-04-14
1010Australia2026-04-19
1011Japan2026-04-18
1012Canada2026-04-21
1013Spain2026-04-01
1014Russia2026-04-12
1015Spain2026-04-22
1016Germany2026-04-21
1017India2026-04-06
1018Japan2026-04-09
1019Spain2026-04-06
1020Canada2026-04-19
1021India2026-04-07
1022Russia2026-04-21
1023Spain2026-04-01
1024Japan2026-04-03
1025France2026-04-16
1026Japan2026-04-05
1027Italy2026-04-08
1028United Kingdom2026-04-24
1029India2026-04-24
1030United Kingdom2026-04-19
1031Germany2026-04-14
1032Argentina2026-04-14
1033Australia2026-04-28
1034France2026-04-21
1035France2026-04-27
1036Argentina2026-04-14
1037Spain2026-04-07
1038France2026-04-03
1039Canada2026-04-06
1040Spain2026-04-06
1041Italy2026-04-18
1042France2026-04-01
1043Germany2026-04-22
1044France2026-04-07
1045India2026-04-02
1046France2026-04-06
1047Italy2026-04-25
1048Argentina2026-04-04
1049Russia2026-04-24

On-Demand Data

NameIdCountryDate
Isabel Bowley1000France2026-04-26
Silvio Slusarski1001United Kingdom2026-04-20
Sinclair Waycott1002Spain2026-04-16
Izzy Garufi1003Australia2026-04-11
Jefferson Schemmer1004Italy2026-04-23
Claire Tollner1005Spain2026-04-17
Salvatore Stockham1006Spain2026-04-20
Jones Vocelka1007France2026-04-18
Claire Tollner1008Canada2026-04-07
Nicolas Iturbide1009Brazil2026-04-13
Morrow Ruta1010United Kingdom2026-04-03
Nicolas Iturbide1011Japan2026-04-08
Jeanfrancois Venere1012Germany2026-04-18
Chavez Briddick1013Brazil2026-04-23
James Butt1014Italy2026-04-27
Tony Foller1015Australia2026-04-14
Jennifer Amigon1016Brazil2026-04-28
Costa Dilliard1017India2026-04-20
Mayumi Kolmetz1018Japan2026-04-17
Octavia Malet1019Spain2026-04-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maria MarrierSpainOnyama Limba QUALIFIED
Tony FollerJapanXuxue Feng NEW
Octavia MaletFranceIvan Magalhaes RENEWAL
Nicolas IturbideItalyXuxue Feng RENEWAL
Antonio CaudySpainAnna Fali QUALIFIED
Aika InouyeBrazilStephen Shaw QUALIFIED
James ButtArgentinaIvan Magalhaes RENEWAL
Izzy GarufiRussiaAnna Fali QUALIFIED
Ivar PaprockiItalyOnyama Limba NEGOTIATION
Mujtaba NickaItalyBernardo Dominic UNQUALIFIED
Mujtaba NickaAustraliaAmy Elsner RENEWAL
Morrow RutaArgentinaOnyama Limba NEGOTIATION
Faith GillianIndiaOnyama Limba RENEWAL
Aika InouyeRussiaIvan Magalhaes PROPOSAL
Ivar PaprockiRussiaAsiya Javayant UNQUALIFIED
Misaki RoysterJapanStephen Shaw NEW
Cody SaylorsCanadaBernardo Dominic NEGOTIATION
Maria MarrierBrazilAsiya Javayant RENEWAL
Octavia MaletSpainBernardo Dominic PROPOSAL
Kaitlin OstroskyRussiaStephen Shaw PROPOSAL
Maria MarrierArgentinaElwin Sharvill NEGOTIATION
Greenwood BologniaBrazilOnyama Limba UNQUALIFIED
Munro FerenczBrazilAsiya Javayant QUALIFIED
Ashley DoeAustraliaOnyama Limba NEW
Jennifer AmigonItalyStephen Shaw PROPOSAL
Ivar PaprockiFranceIoni Bowcher NEGOTIATION
Julie StensethBrazilOnyama Limba QUALIFIED
Izzy GarufiIndiaElwin Sharvill UNQUALIFIED
Alejandro PerinGermanyIoni Bowcher NEW
Aika InouyeCanadaAsiya Javayant QUALIFIED
Ashley DoeBrazilAmy Elsner UNQUALIFIED
Adams MorascaFranceXuxue Feng NEW
Greenwood BologniaCanadaAsiya Javayant QUALIFIED
Jones VocelkaCanadaElwin Sharvill NEGOTIATION
Ivar PaprockiSpainXuxue Feng NEW
Emily WhobreyUnited KingdomXuxue Feng NEW
Faith GillianJapanXuxue Feng PROPOSAL
Costa DilliardCanadaIoni Bowcher QUALIFIED
Ashley DoeArgentinaBernardo Dominic PROPOSAL
Tony FollerBrazilIoni Bowcher 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>