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 StockhamBrazilIoni Bowcher NEGOTIATION
Leja CaldareraAustraliaElwin Sharvill NEGOTIATION
Jefferson SchemmerAustraliaOnyama Limba QUALIFIED
Sinclair WaycottIndiaAmy Elsner PROPOSAL
Emily WhobreyFranceIvan Magalhaes NEGOTIATION
David DarakjyItalyElwin Sharvill PROPOSAL
Morrow RutaUnited KingdomIoni Bowcher PROPOSAL
Jeanfrancois VenereIndiaXuxue Feng NEW
Aruna FigeroaFranceStephen Shaw UNQUALIFIED
Johnson SergiRussiaOnyama Limba NEW
Alejandro PerinUnited KingdomIoni Bowcher NEW
Leja CaldareraSpainOnyama Limba PROPOSAL
Darci PoquetteJapanXuxue Feng QUALIFIED
Antonio CaudyGermanyXuxue Feng RENEWAL
Ashley DoeRussiaBernardo Dominic RENEWAL
Jones VocelkaBrazilBernardo Dominic UNQUALIFIED
Arvin AlbaresItalyAmy Elsner QUALIFIED
Clifford RimAustraliaAsiya Javayant RENEWAL
Misaki RoysterItalyIoni Bowcher QUALIFIED
Munro FerenczJapanStephen Shaw NEGOTIATION
James ButtBrazilAmy Elsner RENEWAL
Darci PoquetteIndiaBernardo Dominic NEW
Stacey MacleadUnited KingdomIvan Magalhaes RENEWAL
Faith GillianSpainStephen Shaw NEGOTIATION
Maisha RulapaughItalyOnyama Limba NEGOTIATION
Claire TollnerIndiaStephen Shaw PROPOSAL
Munro FerenczFranceAsiya Javayant PROPOSAL
Silvio SlusarskiAustraliaIvan Magalhaes NEW
Greenwood BologniaGermanyElwin Sharvill QUALIFIED
Maisha RulapaughIndiaOnyama Limba NEW
Kaitlin OstroskyItalyAmy Elsner UNQUALIFIED
Alejandro PerinJapanIoni Bowcher PROPOSAL
Misaki RoysterSpainAnna Fali PROPOSAL
Jeanfrancois VenereGermanyIoni Bowcher NEW
Julie StensethFranceAsiya Javayant UNQUALIFIED
James ButtIndiaXuxue Feng UNQUALIFIED
Ricardo GauchoUnited KingdomAsiya Javayant RENEWAL
Chavez BriddickSpainBernardo Dominic PROPOSAL
Murillo MaletArgentinaStephen Shaw PROPOSAL
Kadeem FlosiAustraliaElwin Sharvill UNQUALIFIED
Maisha RulapaughUnited KingdomAnna Fali QUALIFIED
Alejandro PerinFranceOnyama Limba RENEWAL
Octavia MaletItalyAsiya Javayant QUALIFIED
David DarakjyUnited KingdomBernardo Dominic NEW
Nicolas IturbideArgentinaOnyama Limba PROPOSAL
Smith GlickAustraliaStephen Shaw PROPOSAL
Maisha RulapaughSpainAnna Fali NEGOTIATION
Maria MarrierCanadaIoni Bowcher PROPOSAL
Rodrigues CampainCanadaElwin Sharvill UNQUALIFIED
Wickens NestleFranceOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Faith GillianJapanBernardo Dominic QUALIFIED
Maisha RulapaughBrazilXuxue Feng UNQUALIFIED
Costa DilliardSpainElwin Sharvill RENEWAL
Adams MorascaJapanElwin Sharvill QUALIFIED
Silvio SlusarskiItalyElwin Sharvill NEW
Deepesh ChuiIndiaXuxue Feng NEW
Jeanfrancois VenereUnited KingdomIoni Bowcher UNQUALIFIED
Claire TollnerAustraliaOnyama Limba NEGOTIATION
Faith GillianCanadaStephen Shaw RENEWAL
James ButtItalyXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa DilliardCanada2025-09-12Chanay, Jeffrey A Esq NEGOTIATION43Anna Fali
1001Costa DilliardFrance2025-09-08Buckley Miller Wright NEGOTIATION21Bernardo Dominic
1002Smith GlickFrance2025-09-03Rousseaux, Michael Esq UNQUALIFIED95Ioni Bowcher
1003Darci PoquetteJapan2025-09-10Feltz Printing Service NEGOTIATION72Ioni Bowcher
1004Leja CaldareraArgentina2025-09-09Printing Dimensions PROPOSAL73Ivan Magalhaes
1005Juan WieserIndia2025-09-01Chapman, Ross E Esq NEGOTIATION52Elwin Sharvill
1006Alejandro PerinArgentina2025-09-01Chemel, James L Cpa QUALIFIED39Ioni Bowcher
1007Johnson SergiGermany2025-09-22Dorl, James J Esq PROPOSAL71Xuxue Feng
1008Izzy GarufiCanada2025-09-10Chemel, James L Cpa NEGOTIATION8Ioni Bowcher
1009Mayumi KolmetzGermany2025-09-01Chemel, James L Cpa UNQUALIFIED4Bernardo Dominic
1010Claire TollnerGermany2025-09-20Truhlar And Truhlar Attys NEW87Bernardo Dominic
1011Mayumi KolmetzSpain2025-09-28King, Christopher A Esq QUALIFIED26Xuxue Feng
1012Ashley DoeUnited Kingdom2025-09-06King, Christopher A Esq NEW35Stephen Shaw
1013Tony FollerItaly2025-09-03King, Christopher A Esq RENEWAL83Bernardo Dominic
1014Darci PoquetteJapan2025-09-14Commercial Press QUALIFIED73Bernardo Dominic
1015Johnson SergiIndia2025-09-02Benton, John B Jr UNQUALIFIED14Bernardo Dominic
1016Leja CaldareraIndia2025-09-20Printing Dimensions UNQUALIFIED92Bernardo Dominic
1017Francesco ShinkoSpain2025-09-14Chemel, James L Cpa NEW70Stephen Shaw
1018Munro FerenczAustralia2025-09-26Morlong Associates PROPOSAL24Ioni Bowcher
1019Mujtaba NickaSpain2025-09-04Printing Dimensions QUALIFIED1Anna Fali
1020Octavia MaletUnited Kingdom2025-09-18Commercial Press UNQUALIFIED46Anna Fali
1021Murillo MaletBrazil2025-09-16Rangoni Of Florence UNQUALIFIED25Amy Elsner
1022Kaitlin OstroskyRussia2025-09-17Chapman, Ross E Esq NEW44Amy Elsner
1023Greenwood BologniaCanada2025-09-09Chanay, Jeffrey A Esq RENEWAL43Bernardo Dominic
1024Ricardo GauchoGermany2025-09-10Dorl, James J Esq RENEWAL35Xuxue Feng
1025Silvio SlusarskiItaly2025-09-27Feltz Printing Service UNQUALIFIED74Ivan Magalhaes
1026Salvatore StockhamSpain2025-09-18Feltz Printing Service RENEWAL41Anna Fali
1027Morrow RutaSpain2025-09-29Truhlar And Truhlar Attys PROPOSAL51Ioni Bowcher
1028Aruna FigeroaRussia2025-09-05Chanay, Jeffrey A Esq NEW48Stephen Shaw
1029Octavia MaletSpain2025-09-26Rousseaux, Michael Esq PROPOSAL48Ivan Magalhaes
1030Leon OldroydBrazil2025-09-03Feiner Bros UNQUALIFIED79Ivan Magalhaes
1031Sinclair WaycottSpain2025-09-19Benton, John B Jr UNQUALIFIED59Onyama Limba
1032Leja CaldareraArgentina2025-09-25Rangoni Of Florence NEW96Stephen Shaw
1033Nicolas IturbideFrance2025-09-14Morlong Associates NEGOTIATION51Xuxue Feng
1034Chavez BriddickIndia2025-09-29Truhlar And Truhlar Attys RENEWAL77Elwin Sharvill
1035Leon OldroydFrance2025-09-04Rousseaux, Michael Esq PROPOSAL21Ivan Magalhaes
1036Julie StensethRussia2025-09-06Feiner Bros QUALIFIED59Xuxue Feng
1037Leon OldroydCanada2025-09-14Feltz Printing Service NEW23Onyama Limba
1038Munro FerenczBrazil2025-09-24Morlong Associates PROPOSAL5Ivan Magalhaes
1039Stacey MacleadAustralia2025-09-19Morlong Associates NEW31Elwin Sharvill
1040Aditya KuskoRussia2025-09-25Chanay, Jeffrey A Esq NEW76Onyama Limba
1041Silvio SlusarskiGermany2025-09-14Dorl, James J Esq PROPOSAL12Elwin Sharvill
1042Rodrigues CampainJapan2025-09-07Truhlar And Truhlar Attys NEW0Onyama Limba
1043Murillo MaletJapan2025-09-06Feiner Bros RENEWAL14Bernardo Dominic
1044Stacey MacleadRussia2025-09-17Chemel, James L Cpa PROPOSAL12Asiya Javayant
1045Munro FerenczIndia2025-08-31Dorl, James J Esq PROPOSAL97Stephen Shaw
1046Octavia MaletFrance2025-09-28Printing Dimensions NEGOTIATION28Asiya Javayant
1047Kaitlin OstroskyUnited Kingdom2025-09-07Buckley Miller Wright NEGOTIATION91Stephen Shaw
1048Antonio CaudyIndia2025-09-07Chemel, James L Cpa RENEWAL53Asiya Javayant
1049Arvin AlbaresUnited Kingdom2025-09-27Commercial Press NEW54Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Julie StensethJapanAnna Fali QUALIFIED
James ButtUnited KingdomOnyama Limba RENEWAL
Silvio SlusarskiUnited KingdomAsiya Javayant QUALIFIED
Julie StensethArgentinaAsiya Javayant NEGOTIATION
Costa DilliardRussiaStephen Shaw UNQUALIFIED
Johnson SergiArgentinaXuxue Feng NEW
Ashley DoeJapanStephen Shaw NEGOTIATION
Darci PoquetteArgentinaIvan Magalhaes RENEWAL
Isabel BowleyArgentinaStephen Shaw RENEWAL
Maisha RulapaughAustraliaElwin Sharvill UNQUALIFIED
Juan WieserFranceElwin Sharvill NEW
Deepesh ChuiItalyAmy Elsner UNQUALIFIED
Jeanfrancois VenereFranceAsiya Javayant NEGOTIATION
Emily WhobreySpainAmy Elsner QUALIFIED
Ivar PaprockiRussiaElwin Sharvill UNQUALIFIED
Maisha RulapaughGermanyBernardo Dominic QUALIFIED
Antonio CaudyCanadaIvan Magalhaes RENEWAL
Ivar PaprockiBrazilStephen Shaw RENEWAL
Antonio CaudyUnited KingdomIoni Bowcher RENEWAL
Darci PoquetteCanadaXuxue Feng PROPOSAL
Silvio SlusarskiItalyXuxue Feng RENEWAL
James ButtAustraliaIoni Bowcher RENEWAL
Maisha RulapaughSpainStephen Shaw NEGOTIATION
Julie StensethUnited KingdomElwin Sharvill UNQUALIFIED
Aruna FigeroaJapanIvan Magalhaes NEGOTIATION
Silvio SlusarskiUnited KingdomIoni Bowcher PROPOSAL
Jones VocelkaAustraliaElwin Sharvill UNQUALIFIED
Tony FollerItalyAmy Elsner QUALIFIED
Deepesh ChuiItalyElwin Sharvill NEW
Leja CaldareraAustraliaStephen Shaw UNQUALIFIED
Greenwood BologniaGermanyIoni Bowcher NEW
Ricardo GauchoCanadaIoni Bowcher NEGOTIATION
Misaki RoysterBrazilElwin Sharvill NEGOTIATION
Francesco ShinkoBrazilStephen Shaw RENEWAL
Darci PoquetteItalyXuxue Feng QUALIFIED
Aika InouyeSpainBernardo Dominic RENEWAL
David DarakjyIndiaOnyama Limba NEGOTIATION
Adams MorascaIndiaBernardo Dominic NEGOTIATION
Sinclair WaycottIndiaOnyama Limba PROPOSAL
Antonio CaudyArgentinaAnna Fali UNQUALIFIED
Jennifer AmigonAustraliaAmy Elsner UNQUALIFIED
Mayumi KolmetzBrazilAsiya Javayant RENEWAL
Misaki RoysterIndiaAsiya Javayant QUALIFIED
Silvio SlusarskiAustraliaAsiya Javayant QUALIFIED
Salvatore StockhamGermanyIoni Bowcher UNQUALIFIED
Leon OldroydGermanyBernardo Dominic NEW
Jefferson SchemmerAustraliaIoni Bowcher UNQUALIFIED
Stacey MacleadCanadaStephen Shaw UNQUALIFIED
Morrow RutaIndiaAmy Elsner NEW
Ivar PaprockiAustraliaOnyama Limba QUALIFIED
Frozen Columns
Name
Arvin Albares
Jennifer Amigon
Izzy Garufi
Salvatore Stockham
Jennifer Amigon
Salvatore Stockham
Tony Foller
Jeanfrancois Venere
Tony Foller
Aika Inouye
Deepesh Chui
David Darakjy
Francesco Shinko
Arvin Albares
Salvatore Stockham
Mujtaba Nicka
Mayumi Kolmetz
Sinclair Waycott
Stacey Maclead
Jennifer Amigon
Izzy Garufi
Aditya Kusko
Jeanfrancois Venere
Jeanfrancois Venere
Silvio Slusarski
Octavia Malet
Rodrigues Campain
Costa Dilliard
Johnson Sergi
Jennifer Amigon
Aika Inouye
Mujtaba Nicka
Faith Gillian
Tony Foller
Misaki Royster
Cody Saylors
Mayumi Kolmetz
Clifford Rim
Clifford Rim
Kaitlin Ostrosky
Izzy Garufi
Tony Foller
Nicolas Iturbide
Aditya Kusko
Stacey Maclead
Munro Ferencz
Aika Inouye
Silvio Slusarski
Misaki Royster
Maisha Rulapaugh
IdCountryDate
1000Japan2025-09-14
1001Germany2025-09-06
1002Italy2025-08-31
1003India2025-09-11
1004Japan2025-09-18
1005Germany2025-09-14
1006Argentina2025-09-26
1007Argentina2025-09-01
1008Russia2025-09-08
1009Australia2025-09-14
1010Argentina2025-09-06
1011Russia2025-09-10
1012Spain2025-08-31
1013Canada2025-09-25
1014Russia2025-09-05
1015Spain2025-09-03
1016United Kingdom2025-09-10
1017Brazil2025-09-11
1018Brazil2025-09-10
1019Germany2025-09-22
1020France2025-09-12
1021Spain2025-09-23
1022Argentina2025-09-05
1023Australia2025-09-26
1024Brazil2025-09-12
1025United Kingdom2025-09-19
1026United Kingdom2025-09-05
1027Australia2025-09-07
1028Spain2025-09-01
1029United Kingdom2025-09-12
1030Argentina2025-09-03
1031Spain2025-09-03
1032India2025-09-15
1033Argentina2025-09-01
1034Italy2025-09-19
1035Brazil2025-09-17
1036Spain2025-09-06
1037Canada2025-09-22
1038United Kingdom2025-09-01
1039Canada2025-09-11
1040Spain2025-09-10
1041France2025-09-26
1042Canada2025-09-04
1043India2025-09-04
1044Australia2025-09-10
1045Italy2025-09-03
1046Italy2025-09-08
1047Brazil2025-09-23
1048Argentina2025-09-25
1049Japan2025-09-06

On-Demand Data

NameIdCountryDate
Darci Poquette1000Germany2025-09-13
Ricardo Gaucho1001United Kingdom2025-09-09
Sinclair Waycott1002Spain2025-09-19
David Darakjy1003Brazil2025-09-12
James Butt1004Japan2025-09-09
Morrow Ruta1005Germany2025-09-16
Johnson Sergi1006Argentina2025-09-15
Rodrigues Campain1007United Kingdom2025-09-17
Costa Dilliard1008Japan2025-09-23
Tony Foller1009France2025-09-05
Mujtaba Nicka1010Italy2025-09-08
Jones Vocelka1011Australia2025-09-25
Claire Tollner1012United Kingdom2025-09-05
Aika Inouye1013Spain2025-08-31
Leon Oldroyd1014Brazil2025-09-10
Greenwood Bolognia1015Russia2025-09-16
Antonio Caudy1016India2025-09-06
Claire Tollner1017Canada2025-09-23
Sinclair Waycott1018Germany2025-09-01
Ashley Doe1019Russia2025-09-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer AmigonRussiaIoni Bowcher NEW
Adams MorascaJapanAnna Fali UNQUALIFIED
Munro FerenczArgentinaIvan Magalhaes RENEWAL
Ashley DoeAustraliaAnna Fali RENEWAL
Silvio SlusarskiIndiaIoni Bowcher UNQUALIFIED
Maisha RulapaughCanadaAmy Elsner QUALIFIED
Chavez BriddickSpainOnyama Limba PROPOSAL
Jeanfrancois VenereAustraliaAnna Fali PROPOSAL
Sinclair WaycottJapanOnyama Limba PROPOSAL
Johnson SergiRussiaElwin Sharvill PROPOSAL
Nicolas IturbideUnited KingdomAnna Fali UNQUALIFIED
Alejandro PerinJapanAnna Fali PROPOSAL
Misaki RoysterCanadaAnna Fali PROPOSAL
Clifford RimSpainStephen Shaw NEGOTIATION
Maria MarrierJapanElwin Sharvill PROPOSAL
Isabel BowleyGermanyAmy Elsner NEW
Ivar PaprockiRussiaOnyama Limba PROPOSAL
Nicolas IturbideAustraliaAmy Elsner PROPOSAL
Julie StensethBrazilBernardo Dominic RENEWAL
Leon OldroydIndiaIoni Bowcher UNQUALIFIED
Emily WhobreyBrazilAnna Fali UNQUALIFIED
Faith GillianCanadaBernardo Dominic NEGOTIATION
Clifford RimAustraliaAnna Fali UNQUALIFIED
Nicolas IturbideBrazilAmy Elsner RENEWAL
Morrow RutaItalyXuxue Feng NEW
Isabel BowleyArgentinaBernardo Dominic UNQUALIFIED
Misaki RoysterUnited KingdomAsiya Javayant PROPOSAL
Darci PoquetteItalyAmy Elsner NEGOTIATION
Costa DilliardJapanOnyama Limba NEW
Cody SaylorsSpainBernardo Dominic NEW
David DarakjyIndiaElwin Sharvill NEGOTIATION
Jeanfrancois VenereUnited KingdomAsiya Javayant QUALIFIED
Aditya KuskoSpainAsiya Javayant NEW
Maria MarrierFranceAmy Elsner PROPOSAL
Leja CaldareraJapanIoni Bowcher QUALIFIED
Morrow RutaItalyElwin Sharvill RENEWAL
Greenwood BologniaBrazilAnna Fali NEW
Francesco ShinkoCanadaAnna Fali NEGOTIATION
Rodrigues CampainSpainAsiya Javayant RENEWAL
Chavez BriddickAustraliaBernardo Dominic RENEWAL

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