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
Aruna FigeroaJapanIvan Magalhaes NEW
Sinclair WaycottRussiaAmy Elsner QUALIFIED
Ashley DoeAustraliaXuxue Feng UNQUALIFIED
Francesco ShinkoJapanIoni Bowcher RENEWAL
Chavez BriddickBrazilAmy Elsner RENEWAL
Cody SaylorsUnited KingdomElwin Sharvill UNQUALIFIED
Tony FollerSpainXuxue Feng UNQUALIFIED
Wickens NestleRussiaElwin Sharvill NEGOTIATION
Ashley DoeJapanAnna Fali QUALIFIED
Jennifer AmigonAustraliaAmy Elsner UNQUALIFIED
Maria MarrierItalyOnyama Limba NEGOTIATION
Jennifer AmigonFranceIvan Magalhaes NEGOTIATION
Kadeem FlosiBrazilIoni Bowcher NEGOTIATION
Antonio CaudyArgentinaBernardo Dominic RENEWAL
Francesco ShinkoAustraliaStephen Shaw PROPOSAL
Arvin AlbaresBrazilBernardo Dominic QUALIFIED
Faith GillianCanadaXuxue Feng PROPOSAL
Nicolas IturbideIndiaOnyama Limba RENEWAL
Kaitlin OstroskyUnited KingdomElwin Sharvill NEW
Juan WieserGermanyAmy Elsner NEGOTIATION
Antonio CaudyItalyOnyama Limba NEGOTIATION
Wickens NestleGermanyElwin Sharvill UNQUALIFIED
Adams MorascaArgentinaXuxue Feng NEGOTIATION
Arvin AlbaresIndiaOnyama Limba NEW
Jefferson SchemmerAustraliaAmy Elsner UNQUALIFIED
Faith GillianCanadaBernardo Dominic NEW
Octavia MaletIndiaAsiya Javayant NEW
Octavia MaletArgentinaOnyama Limba NEW
Darci PoquetteIndiaAmy Elsner UNQUALIFIED
Chavez BriddickRussiaXuxue Feng RENEWAL
Mujtaba NickaGermanyAsiya Javayant NEW
Ricardo GauchoAustraliaIoni Bowcher RENEWAL
Isabel BowleyJapanAmy Elsner NEW
Aditya KuskoGermanyAnna Fali NEGOTIATION
Johnson SergiIndiaIvan Magalhaes RENEWAL
Sinclair WaycottSpainBernardo Dominic PROPOSAL
Ricardo GauchoGermanyBernardo Dominic NEGOTIATION
Murillo MaletAustraliaStephen Shaw UNQUALIFIED
David DarakjyRussiaIoni Bowcher UNQUALIFIED
Jones VocelkaGermanyIvan Magalhaes QUALIFIED
Kaitlin OstroskyRussiaBernardo Dominic NEGOTIATION
Maisha RulapaughUnited KingdomBernardo Dominic NEGOTIATION
Francesco ShinkoGermanyXuxue Feng UNQUALIFIED
Aditya KuskoAustraliaIvan Magalhaes RENEWAL
Jefferson SchemmerCanadaElwin Sharvill PROPOSAL
Claire TollnerArgentinaAsiya Javayant NEW
Adams MorascaUnited KingdomStephen Shaw QUALIFIED
Ricardo GauchoArgentinaStephen Shaw RENEWAL
Julie StensethFranceAnna Fali QUALIFIED
Emily WhobreyArgentinaAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Misaki RoysterArgentinaAsiya Javayant NEW
Izzy GarufiAustraliaAnna Fali UNQUALIFIED
Chavez BriddickArgentinaAsiya Javayant NEW
James ButtJapanBernardo Dominic UNQUALIFIED
Jeanfrancois VenereJapanBernardo Dominic NEGOTIATION
Clifford RimSpainIvan Magalhaes QUALIFIED
Izzy GarufiGermanyStephen Shaw NEGOTIATION
Maisha RulapaughRussiaXuxue Feng NEGOTIATION
Stacey MacleadIndiaElwin Sharvill UNQUALIFIED
Cody SaylorsBrazilOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey MacleadItaly2026-04-16King, Christopher A Esq RENEWAL65Stephen Shaw
1001David DarakjySpain2026-04-16Commercial Press NEW52Anna Fali
1002Morrow RutaArgentina2026-05-12Rousseaux, Michael Esq UNQUALIFIED16Asiya Javayant
1003Maria MarrierItaly2026-04-30Printing Dimensions UNQUALIFIED74Ivan Magalhaes
1004Silvio SlusarskiBrazil2026-05-08Chemel, James L Cpa RENEWAL99Anna Fali
1005Morrow RutaAustralia2026-05-05Chanay, Jeffrey A Esq RENEWAL46Onyama Limba
1006Aditya KuskoJapan2026-04-27Dorl, James J Esq NEGOTIATION6Bernardo Dominic
1007Maria MarrierSpain2026-04-30Feiner Bros NEW44Bernardo Dominic
1008Chavez BriddickSpain2026-05-04Chanay, Jeffrey A Esq NEW28Anna Fali
1009Cody SaylorsSpain2026-04-27Dorl, James J Esq PROPOSAL6Elwin Sharvill
1010Clifford RimAustralia2026-05-04Morlong Associates UNQUALIFIED47Xuxue Feng
1011Johnson SergiBrazil2026-04-23King, Christopher A Esq RENEWAL84Stephen Shaw
1012Silvio SlusarskiJapan2026-04-21Chemel, James L Cpa UNQUALIFIED40Xuxue Feng
1013Isabel BowleyArgentina2026-04-22Buckley Miller Wright RENEWAL15Stephen Shaw
1014Maria MarrierItaly2026-04-26King, Christopher A Esq NEW23Stephen Shaw
1015Aruna FigeroaAustralia2026-05-05Rousseaux, Michael Esq NEW66Onyama Limba
1016Morrow RutaSpain2026-04-28Buckley Miller Wright QUALIFIED85Elwin Sharvill
1017Aruna FigeroaItaly2026-05-13Feiner Bros UNQUALIFIED17Elwin Sharvill
1018Greenwood BologniaArgentina2026-04-16Chemel, James L Cpa NEW26Amy Elsner
1019Isabel BowleyUnited Kingdom2026-05-03Truhlar And Truhlar Attys NEGOTIATION12Stephen Shaw
1020Maisha RulapaughUnited Kingdom2026-04-21Commercial Press NEGOTIATION28Ivan Magalhaes
1021Juan WieserUnited Kingdom2026-05-08Truhlar And Truhlar Attys QUALIFIED31Ivan Magalhaes
1022Ivar PaprockiJapan2026-04-27King, Christopher A Esq UNQUALIFIED47Onyama Limba
1023Aika InouyeCanada2026-04-19Rousseaux, Michael Esq UNQUALIFIED93Ioni Bowcher
1024Aruna FigeroaJapan2026-05-15Chapman, Ross E Esq NEW58Stephen Shaw
1025Nicolas IturbideRussia2026-04-21Dorl, James J Esq RENEWAL11Amy Elsner
1026Mayumi KolmetzSpain2026-04-27Dorl, James J Esq NEW59Bernardo Dominic
1027Jeanfrancois VenereItaly2026-05-10Benton, John B Jr PROPOSAL80Bernardo Dominic
1028Cody SaylorsIndia2026-05-14Dorl, James J Esq PROPOSAL6Onyama Limba
1029Wickens NestleCanada2026-05-15Feltz Printing Service UNQUALIFIED46Xuxue Feng
1030Greenwood BologniaIndia2026-04-30Chanay, Jeffrey A Esq UNQUALIFIED0Stephen Shaw
1031Tony FollerIndia2026-05-14King, Christopher A Esq NEW28Onyama Limba
1032Chavez BriddickArgentina2026-04-19Buckley Miller Wright QUALIFIED95Amy Elsner
1033Greenwood BologniaGermany2026-04-24Chemel, James L Cpa NEGOTIATION18Asiya Javayant
1034Nicolas IturbideCanada2026-05-15Feltz Printing Service PROPOSAL82Elwin Sharvill
1035Chavez BriddickFrance2026-04-25Buckley Miller Wright RENEWAL13Ivan Magalhaes
1036Aruna FigeroaJapan2026-04-19Benton, John B Jr QUALIFIED79Asiya Javayant
1037Octavia MaletItaly2026-04-29Benton, John B Jr QUALIFIED5Bernardo Dominic
1038Darci PoquetteFrance2026-04-26King, Christopher A Esq NEGOTIATION11Elwin Sharvill
1039Leon OldroydSpain2026-04-18Dorl, James J Esq QUALIFIED16Onyama Limba
1040Claire TollnerIndia2026-05-02Dorl, James J Esq NEW68Bernardo Dominic
1041Leja CaldareraAustralia2026-05-11Chanay, Jeffrey A Esq NEGOTIATION82Ioni Bowcher
1042David DarakjyJapan2026-05-13Dorl, James J Esq NEGOTIATION2Anna Fali
1043Clifford RimCanada2026-05-13Morlong Associates NEGOTIATION24Stephen Shaw
1044Izzy GarufiUnited Kingdom2026-04-18Feltz Printing Service NEW4Onyama Limba
1045Murillo MaletGermany2026-04-23Chemel, James L Cpa NEGOTIATION27Ioni Bowcher
1046Kaitlin OstroskyArgentina2026-04-22Chemel, James L Cpa NEW52Stephen Shaw
1047Murillo MaletIndia2026-05-13Chemel, James L Cpa RENEWAL31Onyama Limba
1048Jeanfrancois VenereJapan2026-04-23Dorl, James J Esq NEGOTIATION91Ioni Bowcher
1049Antonio CaudyFrance2026-05-04Feltz Printing Service UNQUALIFIED42Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Aruna FigeroaFranceIoni Bowcher NEW
Jeanfrancois VenereBrazilAnna Fali NEGOTIATION
Rodrigues CampainFranceStephen Shaw QUALIFIED
Jones VocelkaRussiaStephen Shaw UNQUALIFIED
Jeanfrancois VenereBrazilStephen Shaw NEGOTIATION
Mujtaba NickaIndiaStephen Shaw RENEWAL
Silvio SlusarskiUnited KingdomBernardo Dominic QUALIFIED
Smith GlickItalyOnyama Limba PROPOSAL
Octavia MaletCanadaXuxue Feng QUALIFIED
Mujtaba NickaSpainOnyama Limba PROPOSAL
James ButtIndiaXuxue Feng PROPOSAL
Wickens NestleFranceBernardo Dominic QUALIFIED
Arvin AlbaresFranceXuxue Feng RENEWAL
Jefferson SchemmerArgentinaBernardo Dominic PROPOSAL
Jennifer AmigonArgentinaOnyama Limba RENEWAL
Chavez BriddickSpainBernardo Dominic PROPOSAL
Adams MorascaCanadaIoni Bowcher PROPOSAL
Francesco ShinkoRussiaOnyama Limba NEGOTIATION
Antonio CaudyArgentinaXuxue Feng NEW
Maria MarrierIndiaElwin Sharvill UNQUALIFIED
Jones VocelkaBrazilAsiya Javayant NEGOTIATION
Juan WieserRussiaXuxue Feng NEW
Darci PoquetteJapanIvan Magalhaes NEGOTIATION
Claire TollnerSpainOnyama Limba QUALIFIED
Jones VocelkaCanadaBernardo Dominic PROPOSAL
Rodrigues CampainJapanAsiya Javayant UNQUALIFIED
Jefferson SchemmerCanadaIvan Magalhaes NEW
Ricardo GauchoJapanXuxue Feng UNQUALIFIED
Jeanfrancois VenereBrazilStephen Shaw NEGOTIATION
David DarakjyArgentinaAmy Elsner QUALIFIED
Francesco ShinkoIndiaIoni Bowcher UNQUALIFIED
Maria MarrierJapanXuxue Feng QUALIFIED
Julie StensethRussiaAnna Fali QUALIFIED
Isabel BowleyAustraliaBernardo Dominic QUALIFIED
Juan WieserSpainAnna Fali NEGOTIATION
Jones VocelkaUnited KingdomIoni Bowcher QUALIFIED
Arvin AlbaresJapanStephen Shaw QUALIFIED
David DarakjyAustraliaXuxue Feng UNQUALIFIED
Silvio SlusarskiSpainBernardo Dominic NEGOTIATION
Murillo MaletFranceAsiya Javayant NEGOTIATION
Maisha RulapaughFranceStephen Shaw PROPOSAL
Salvatore StockhamRussiaXuxue Feng NEGOTIATION
Munro FerenczUnited KingdomAmy Elsner QUALIFIED
Kadeem FlosiFranceOnyama Limba UNQUALIFIED
Munro FerenczGermanyBernardo Dominic PROPOSAL
Arvin AlbaresGermanyOnyama Limba NEW
Costa DilliardJapanElwin Sharvill NEGOTIATION
Alejandro PerinArgentinaAsiya Javayant UNQUALIFIED
Juan WieserRussiaElwin Sharvill QUALIFIED
Adams MorascaArgentinaStephen Shaw NEGOTIATION
Frozen Columns
Name
Emily Whobrey
Jeanfrancois Venere
Chavez Briddick
Ivar Paprocki
Antonio Caudy
Julie Stenseth
Aditya Kusko
Aika Inouye
David Darakjy
Antonio Caudy
Aditya Kusko
Wickens Nestle
Misaki Royster
Rodrigues Campain
Wickens Nestle
Murillo Malet
Darci Poquette
Jones Vocelka
Rodrigues Campain
Aruna Figeroa
Deepesh Chui
Smith Glick
Sinclair Waycott
Mayumi Kolmetz
Aika Inouye
Darci Poquette
Claire Tollner
Greenwood Bolognia
Cody Saylors
Munro Ferencz
Mayumi Kolmetz
James Butt
Munro Ferencz
David Darakjy
Maisha Rulapaugh
Alejandro Perin
Clifford Rim
Alejandro Perin
Stacey Maclead
Leon Oldroyd
Costa Dilliard
Aditya Kusko
David Darakjy
Salvatore Stockham
Faith Gillian
Morrow Ruta
Murillo Malet
Aruna Figeroa
Leja Caldarera
Maria Marrier
IdCountryDate
1000Canada2026-05-06
1001Canada2026-04-29
1002United Kingdom2026-05-03
1003France2026-05-04
1004Argentina2026-04-24
1005United Kingdom2026-04-17
1006Russia2026-05-02
1007Russia2026-05-07
1008Italy2026-04-29
1009Australia2026-04-23
1010Russia2026-04-19
1011Australia2026-04-26
1012France2026-04-28
1013India2026-05-13
1014Italy2026-04-25
1015Germany2026-05-13
1016United Kingdom2026-04-21
1017Australia2026-04-28
1018Brazil2026-05-14
1019Argentina2026-05-09
1020Argentina2026-04-16
1021Russia2026-04-22
1022Canada2026-05-02
1023Japan2026-04-27
1024Brazil2026-04-18
1025Germany2026-05-01
1026Spain2026-04-28
1027India2026-05-01
1028Germany2026-05-15
1029Italy2026-05-14
1030Argentina2026-04-25
1031Italy2026-05-01
1032Japan2026-04-26
1033United Kingdom2026-05-07
1034Argentina2026-04-16
1035France2026-05-10
1036Germany2026-04-18
1037India2026-05-13
1038Canada2026-04-30
1039Australia2026-05-03
1040Japan2026-04-19
1041Italy2026-05-02
1042Russia2026-04-22
1043Japan2026-05-14
1044United Kingdom2026-04-21
1045Germany2026-05-04
1046Australia2026-04-23
1047United Kingdom2026-04-17
1048Japan2026-05-07
1049France2026-04-21

On-Demand Data

NameIdCountryDate
Arvin Albares1000Spain2026-05-05
Alejandro Perin1001France2026-04-26
Sinclair Waycott1002India2026-04-29
Greenwood Bolognia1003Brazil2026-04-17
Deepesh Chui1004Brazil2026-05-15
Octavia Malet1005Argentina2026-05-06
Sinclair Waycott1006United Kingdom2026-05-05
Julie Stenseth1007United Kingdom2026-05-11
Tony Foller1008France2026-04-21
Kaitlin Ostrosky1009India2026-04-29
Maria Marrier1010France2026-05-14
Leja Caldarera1011France2026-04-28
David Darakjy1012Australia2026-05-06
Jones Vocelka1013Canada2026-05-12
Deepesh Chui1014Russia2026-05-04
Izzy Garufi1015Spain2026-05-10
Murillo Malet1016Japan2026-04-20
Isabel Bowley1017France2026-04-19
Leon Oldroyd1018United Kingdom2026-05-04
Greenwood Bolognia1019Canada2026-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer AmigonArgentinaAsiya Javayant NEGOTIATION
Jennifer AmigonJapanBernardo Dominic NEW
Murillo MaletGermanyStephen Shaw NEGOTIATION
Wickens NestleUnited KingdomElwin Sharvill RENEWAL
Aika InouyeIndiaAmy Elsner PROPOSAL
Octavia MaletCanadaIvan Magalhaes RENEWAL
Greenwood BologniaSpainOnyama Limba RENEWAL
Cody SaylorsSpainOnyama Limba QUALIFIED
Maisha RulapaughJapanIoni Bowcher NEGOTIATION
Ashley DoeUnited KingdomAsiya Javayant RENEWAL
Aditya KuskoJapanIvan Magalhaes PROPOSAL
Sinclair WaycottFranceAsiya Javayant RENEWAL
Rodrigues CampainUnited KingdomXuxue Feng NEW
Aditya KuskoBrazilStephen Shaw NEW
Sinclair WaycottCanadaElwin Sharvill UNQUALIFIED
Aruna FigeroaJapanIvan Magalhaes UNQUALIFIED
Mujtaba NickaRussiaIvan Magalhaes QUALIFIED
Johnson SergiIndiaAnna Fali UNQUALIFIED
Isabel BowleyIndiaOnyama Limba UNQUALIFIED
Jefferson SchemmerAustraliaXuxue Feng NEGOTIATION
Jennifer AmigonCanadaAnna Fali PROPOSAL
Tony FollerFranceAsiya Javayant QUALIFIED
Munro FerenczRussiaBernardo Dominic RENEWAL
Isabel BowleyBrazilStephen Shaw NEW
Ashley DoeIndiaIvan Magalhaes PROPOSAL
Aditya KuskoGermanyOnyama Limba QUALIFIED
Aika InouyeSpainIvan Magalhaes RENEWAL
Misaki RoysterRussiaXuxue Feng NEW
Chavez BriddickJapanIoni Bowcher RENEWAL
Kaitlin OstroskyFranceAnna Fali QUALIFIED
Jeanfrancois VenereRussiaOnyama Limba NEW
Leon OldroydJapanElwin Sharvill PROPOSAL
Silvio SlusarskiRussiaOnyama Limba NEW
Salvatore StockhamItalyBernardo Dominic NEW
Tony FollerFranceXuxue Feng PROPOSAL
Deepesh ChuiRussiaBernardo Dominic UNQUALIFIED
Kaitlin OstroskyBrazilStephen Shaw UNQUALIFIED
Cody SaylorsJapanIoni Bowcher PROPOSAL
Rodrigues CampainUnited KingdomAmy Elsner PROPOSAL
Clifford RimGermanyIoni Bowcher 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>