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
Munro FerenczBrazilAsiya Javayant PROPOSAL
Juan WieserRussiaOnyama Limba NEW
Murillo MaletGermanyXuxue Feng NEW
Aruna FigeroaItalyBernardo Dominic RENEWAL
Claire TollnerJapanIvan Magalhaes NEGOTIATION
Octavia MaletCanadaAnna Fali NEW
Munro FerenczItalyXuxue Feng NEW
Ricardo GauchoUnited KingdomIoni Bowcher NEGOTIATION
David DarakjyFranceAmy Elsner RENEWAL
Kadeem FlosiFranceOnyama Limba RENEWAL
Aditya KuskoItalyAnna Fali NEW
Rodrigues CampainCanadaIoni Bowcher NEGOTIATION
David DarakjyItalyStephen Shaw UNQUALIFIED
Clifford RimJapanElwin Sharvill PROPOSAL
Claire TollnerJapanBernardo Dominic PROPOSAL
Mujtaba NickaArgentinaAnna Fali RENEWAL
Chavez BriddickUnited KingdomAnna Fali QUALIFIED
Kaitlin OstroskyUnited KingdomOnyama Limba PROPOSAL
Chavez BriddickFranceOnyama Limba QUALIFIED
Salvatore StockhamArgentinaOnyama Limba RENEWAL
Isabel BowleyGermanyElwin Sharvill NEGOTIATION
Sinclair WaycottGermanyAmy Elsner NEW
Munro FerenczUnited KingdomIoni Bowcher QUALIFIED
Kadeem FlosiRussiaBernardo Dominic RENEWAL
Wickens NestleArgentinaStephen Shaw UNQUALIFIED
Julie StensethIndiaStephen Shaw QUALIFIED
Isabel BowleyAustraliaStephen Shaw NEGOTIATION
Munro FerenczCanadaIvan Magalhaes RENEWAL
Greenwood BologniaSpainOnyama Limba UNQUALIFIED
Rodrigues CampainArgentinaAsiya Javayant UNQUALIFIED
Clifford RimAustraliaAnna Fali QUALIFIED
Jones VocelkaAustraliaOnyama Limba UNQUALIFIED
Sinclair WaycottBrazilIoni Bowcher UNQUALIFIED
Chavez BriddickGermanyIoni Bowcher RENEWAL
Costa DilliardAustraliaAnna Fali UNQUALIFIED
Smith GlickItalyElwin Sharvill RENEWAL
Munro FerenczFranceStephen Shaw QUALIFIED
David DarakjyBrazilAmy Elsner NEGOTIATION
Rodrigues CampainUnited KingdomOnyama Limba NEGOTIATION
Aditya KuskoItalyXuxue Feng NEW
Kaitlin OstroskySpainIvan Magalhaes PROPOSAL
Stacey MacleadCanadaAsiya Javayant NEGOTIATION
Stacey MacleadSpainBernardo Dominic UNQUALIFIED
Nicolas IturbideJapanIvan Magalhaes RENEWAL
Jones VocelkaJapanStephen Shaw UNQUALIFIED
Clifford RimGermanyElwin Sharvill PROPOSAL
Nicolas IturbideRussiaIvan Magalhaes PROPOSAL
Munro FerenczBrazilAnna Fali NEGOTIATION
Kaitlin OstroskyGermanyIvan Magalhaes QUALIFIED
Clifford RimSpainBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ivar PaprockiRussiaOnyama Limba RENEWAL
Cody SaylorsFranceAnna Fali QUALIFIED
Maria MarrierCanadaOnyama Limba QUALIFIED
Kadeem FlosiGermanyBernardo Dominic NEGOTIATION
Faith GillianArgentinaBernardo Dominic QUALIFIED
Johnson SergiBrazilIoni Bowcher PROPOSAL
Jones VocelkaUnited KingdomAsiya Javayant NEW
Isabel BowleyFranceOnyama Limba NEW
Maisha RulapaughUnited KingdomAnna Fali UNQUALIFIED
Jones VocelkaIndiaIoni Bowcher QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Stacey MacleadUnited Kingdom2026-05-22Chapman, Ross E Esq RENEWAL72Ivan Magalhaes
1001Munro FerenczUnited Kingdom2026-05-07Rangoni Of Florence RENEWAL95Asiya Javayant
1002Jefferson SchemmerSpain2026-06-05Truhlar And Truhlar Attys NEGOTIATION0Xuxue Feng
1003Francesco ShinkoCanada2026-05-16Feltz Printing Service PROPOSAL56Bernardo Dominic
1004Maisha RulapaughJapan2026-05-21Printing Dimensions QUALIFIED11Ioni Bowcher
1005Munro FerenczIndia2026-05-24Morlong Associates NEGOTIATION24Anna Fali
1006Morrow RutaUnited Kingdom2026-05-19Rousseaux, Michael Esq QUALIFIED8Elwin Sharvill
1007Juan WieserItaly2026-05-09Buckley Miller Wright QUALIFIED57Bernardo Dominic
1008Johnson SergiJapan2026-05-16Morlong Associates RENEWAL44Elwin Sharvill
1009Sinclair WaycottBrazil2026-05-17Benton, John B Jr QUALIFIED62Onyama Limba
1010Stacey MacleadCanada2026-05-10Chanay, Jeffrey A Esq NEW58Amy Elsner
1011Aruna FigeroaBrazil2026-05-23Feltz Printing Service UNQUALIFIED39Onyama Limba
1012Alejandro PerinArgentina2026-06-05Printing Dimensions RENEWAL10Ioni Bowcher
1013Misaki RoysterUnited Kingdom2026-05-30Commercial Press NEGOTIATION9Bernardo Dominic
1014Emily WhobreyItaly2026-05-23Feltz Printing Service RENEWAL28Ivan Magalhaes
1015Antonio CaudyArgentina2026-05-21Commercial Press UNQUALIFIED20Asiya Javayant
1016Salvatore StockhamIndia2026-06-03Feltz Printing Service NEGOTIATION27Amy Elsner
1017Munro FerenczRussia2026-05-18Feiner Bros NEW32Bernardo Dominic
1018Costa DilliardFrance2026-05-22Benton, John B Jr UNQUALIFIED28Asiya Javayant
1019Darci PoquetteSpain2026-05-26Printing Dimensions NEW68Ioni Bowcher
1020Antonio CaudyRussia2026-05-28Chanay, Jeffrey A Esq QUALIFIED50Bernardo Dominic
1021Maria MarrierGermany2026-05-28Dorl, James J Esq NEW95Elwin Sharvill
1022Izzy GarufiRussia2026-05-28Truhlar And Truhlar Attys NEGOTIATION76Stephen Shaw
1023Ricardo GauchoCanada2026-06-02Feltz Printing Service QUALIFIED11Amy Elsner
1024Sinclair WaycottBrazil2026-05-29Rangoni Of Florence NEW22Elwin Sharvill
1025Emily WhobreyRussia2026-05-12King, Christopher A Esq RENEWAL98Onyama Limba
1026Mujtaba NickaUnited Kingdom2026-06-02Benton, John B Jr RENEWAL30Bernardo Dominic
1027Jennifer AmigonIndia2026-05-31Printing Dimensions NEGOTIATION20Ivan Magalhaes
1028Clifford RimBrazil2026-05-18Buckley Miller Wright UNQUALIFIED94Onyama Limba
1029Silvio SlusarskiItaly2026-05-30Rousseaux, Michael Esq PROPOSAL67Bernardo Dominic
1030Antonio CaudyFrance2026-05-07Rangoni Of Florence PROPOSAL97Asiya Javayant
1031Jones VocelkaAustralia2026-05-29Buckley Miller Wright NEGOTIATION48Stephen Shaw
1032Nicolas IturbideCanada2026-05-23Chemel, James L Cpa NEW84Asiya Javayant
1033Munro FerenczArgentina2026-05-20Feltz Printing Service RENEWAL93Onyama Limba
1034Nicolas IturbideRussia2026-05-15Feltz Printing Service RENEWAL52Stephen Shaw
1035Silvio SlusarskiArgentina2026-05-14Buckley Miller Wright QUALIFIED51Xuxue Feng
1036Mayumi KolmetzItaly2026-05-27Chapman, Ross E Esq NEW78Elwin Sharvill
1037Rodrigues CampainFrance2026-05-27Morlong Associates NEGOTIATION48Bernardo Dominic
1038Maria MarrierRussia2026-06-01Rousseaux, Michael Esq UNQUALIFIED78Anna Fali
1039Adams MorascaArgentina2026-05-30Printing Dimensions QUALIFIED81Xuxue Feng
1040Arvin AlbaresGermany2026-05-13Chapman, Ross E Esq PROPOSAL27Anna Fali
1041Isabel BowleyItaly2026-06-05Feiner Bros NEGOTIATION14Elwin Sharvill
1042Misaki RoysterCanada2026-05-11Buckley Miller Wright UNQUALIFIED4Stephen Shaw
1043Aditya KuskoIndia2026-05-16Truhlar And Truhlar Attys RENEWAL4Bernardo Dominic
1044Clifford RimRussia2026-05-12Printing Dimensions QUALIFIED44Anna Fali
1045Nicolas IturbideFrance2026-06-03Buckley Miller Wright RENEWAL27Asiya Javayant
1046Ashley DoeArgentina2026-05-14Feltz Printing Service PROPOSAL93Stephen Shaw
1047Chavez BriddickAustralia2026-06-03Truhlar And Truhlar Attys PROPOSAL44Ioni Bowcher
1048Aika InouyeItaly2026-05-30Rangoni Of Florence RENEWAL85Ivan Magalhaes
1049Murillo MaletFrance2026-06-01King, Christopher A Esq QUALIFIED41Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Maisha RulapaughRussiaAmy Elsner QUALIFIED
Leja CaldareraFranceOnyama Limba NEGOTIATION
Isabel BowleySpainXuxue Feng RENEWAL
Faith GillianRussiaIoni Bowcher QUALIFIED
Jones VocelkaAustraliaStephen Shaw QUALIFIED
Wickens NestleGermanyStephen Shaw RENEWAL
Mayumi KolmetzRussiaBernardo Dominic UNQUALIFIED
Juan WieserUnited KingdomBernardo Dominic PROPOSAL
Emily WhobreyAustraliaStephen Shaw RENEWAL
Jeanfrancois VenereItalyIoni Bowcher RENEWAL
Silvio SlusarskiSpainAsiya Javayant PROPOSAL
Costa DilliardJapanAsiya Javayant NEGOTIATION
Morrow RutaBrazilAsiya Javayant QUALIFIED
Murillo MaletItalyAsiya Javayant RENEWAL
Greenwood BologniaCanadaAmy Elsner NEGOTIATION
Maisha RulapaughArgentinaOnyama Limba PROPOSAL
Mujtaba NickaAustraliaIoni Bowcher RENEWAL
Kaitlin OstroskyBrazilAmy Elsner PROPOSAL
Faith GillianIndiaXuxue Feng PROPOSAL
Octavia MaletJapanXuxue Feng RENEWAL
Leja CaldareraCanadaElwin Sharvill RENEWAL
Stacey MacleadIndiaIvan Magalhaes NEGOTIATION
Chavez BriddickArgentinaXuxue Feng NEGOTIATION
Chavez BriddickArgentinaElwin Sharvill NEW
Kaitlin OstroskySpainBernardo Dominic RENEWAL
James ButtJapanAsiya Javayant RENEWAL
Darci PoquetteItalyElwin Sharvill UNQUALIFIED
Sinclair WaycottGermanyAsiya Javayant NEGOTIATION
Deepesh ChuiArgentinaAnna Fali NEGOTIATION
Mujtaba NickaFranceXuxue Feng UNQUALIFIED
Darci PoquetteArgentinaAsiya Javayant UNQUALIFIED
Alejandro PerinArgentinaStephen Shaw QUALIFIED
Silvio SlusarskiGermanyElwin Sharvill UNQUALIFIED
Misaki RoysterAustraliaBernardo Dominic UNQUALIFIED
Ashley DoeArgentinaOnyama Limba NEW
Silvio SlusarskiArgentinaBernardo Dominic RENEWAL
Ashley DoeUnited KingdomBernardo Dominic NEW
Faith GillianSpainIoni Bowcher UNQUALIFIED
Darci PoquetteAustraliaBernardo Dominic UNQUALIFIED
Kadeem FlosiBrazilOnyama Limba NEGOTIATION
Clifford RimArgentinaStephen Shaw NEW
Stacey MacleadFranceElwin Sharvill UNQUALIFIED
Leon OldroydCanadaAnna Fali QUALIFIED
Deepesh ChuiCanadaAmy Elsner NEGOTIATION
Izzy GarufiCanadaBernardo Dominic UNQUALIFIED
Stacey MacleadIndiaXuxue Feng RENEWAL
Leja CaldareraIndiaIvan Magalhaes QUALIFIED
Darci PoquetteUnited KingdomBernardo Dominic QUALIFIED
Silvio SlusarskiUnited KingdomBernardo Dominic PROPOSAL
Mujtaba NickaArgentinaStephen Shaw PROPOSAL
Frozen Columns
Name
Costa Dilliard
Munro Ferencz
Chavez Briddick
Leja Caldarera
Ricardo Gaucho
Misaki Royster
Morrow Ruta
Chavez Briddick
James Butt
Mujtaba Nicka
Munro Ferencz
Rodrigues Campain
Francesco Shinko
David Darakjy
Faith Gillian
Isabel Bowley
Kadeem Flosi
Rodrigues Campain
Ashley Doe
Leja Caldarera
Jefferson Schemmer
Greenwood Bolognia
Izzy Garufi
Mujtaba Nicka
Maisha Rulapaugh
Antonio Caudy
Chavez Briddick
Wickens Nestle
Faith Gillian
James Butt
Tony Foller
Nicolas Iturbide
Antonio Caudy
Greenwood Bolognia
Mujtaba Nicka
Darci Poquette
Ashley Doe
Greenwood Bolognia
Ivar Paprocki
Cody Saylors
Costa Dilliard
Tony Foller
Kadeem Flosi
Kaitlin Ostrosky
Jefferson Schemmer
Costa Dilliard
Jefferson Schemmer
Octavia Malet
David Darakjy
Francesco Shinko
IdCountryDate
1000Brazil2026-05-09
1001United Kingdom2026-05-27
1002France2026-05-25
1003India2026-06-01
1004Russia2026-05-29
1005Argentina2026-05-29
1006Australia2026-05-21
1007Russia2026-05-09
1008Italy2026-05-15
1009Japan2026-05-12
1010United Kingdom2026-05-25
1011Canada2026-05-17
1012Argentina2026-05-19
1013Italy2026-05-27
1014Japan2026-05-21
1015United Kingdom2026-05-16
1016Japan2026-05-11
1017United Kingdom2026-06-01
1018Brazil2026-05-09
1019France2026-05-28
1020Italy2026-05-13
1021India2026-05-29
1022Canada2026-05-30
1023Canada2026-05-17
1024Spain2026-05-17
1025France2026-05-22
1026Germany2026-05-28
1027India2026-06-04
1028Brazil2026-05-14
1029Russia2026-05-09
1030Russia2026-05-30
1031Canada2026-05-28
1032India2026-05-30
1033Canada2026-05-18
1034Canada2026-05-25
1035Japan2026-05-08
1036Australia2026-05-23
1037United Kingdom2026-06-02
1038Canada2026-05-20
1039Canada2026-05-12
1040Canada2026-05-23
1041Japan2026-05-26
1042France2026-05-30
1043Brazil2026-05-11
1044Russia2026-05-31
1045Japan2026-05-13
1046France2026-05-23
1047Japan2026-05-21
1048Italy2026-05-14
1049Brazil2026-05-26

On-Demand Data

NameIdCountryDate
Sinclair Waycott1000Italy2026-05-07
Ivar Paprocki1001Brazil2026-05-15
Ricardo Gaucho1002Spain2026-05-18
Jones Vocelka1003India2026-05-31
Francesco Shinko1004Russia2026-05-16
Wickens Nestle1005Russia2026-05-07
Rodrigues Campain1006Japan2026-05-22
Juan Wieser1007United Kingdom2026-05-25
Rodrigues Campain1008Australia2026-05-18
Johnson Sergi1009Russia2026-05-09
Ashley Doe1010Spain2026-05-31
Aika Inouye1011India2026-06-04
Nicolas Iturbide1012Brazil2026-05-25
Jones Vocelka1013Australia2026-05-20
Aruna Figeroa1014Canada2026-05-25
Morrow Ruta1015Japan2026-05-23
Ricardo Gaucho1016Italy2026-05-19
Salvatore Stockham1017Argentina2026-05-16
Ricardo Gaucho1018Italy2026-05-16
Emily Whobrey1019Russia2026-05-29
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Antonio CaudyGermanyBernardo Dominic UNQUALIFIED
James ButtUnited KingdomIoni Bowcher NEW
Kaitlin OstroskyFranceAnna Fali NEGOTIATION
Francesco ShinkoItalyAnna Fali NEW
Silvio SlusarskiAustraliaStephen Shaw PROPOSAL
Jeanfrancois VenereFranceXuxue Feng UNQUALIFIED
Kadeem FlosiFranceOnyama Limba NEGOTIATION
Faith GillianJapanAnna Fali UNQUALIFIED
Stacey MacleadFranceXuxue Feng QUALIFIED
Izzy GarufiItalyStephen Shaw PROPOSAL
Maria MarrierJapanXuxue Feng QUALIFIED
Aditya KuskoBrazilXuxue Feng UNQUALIFIED
Aditya KuskoRussiaElwin Sharvill NEGOTIATION
Aika InouyeGermanyAnna Fali NEGOTIATION
Maria MarrierArgentinaBernardo Dominic QUALIFIED
Emily WhobreyGermanyAnna Fali QUALIFIED
Leja CaldareraJapanBernardo Dominic PROPOSAL
Sinclair WaycottBrazilXuxue Feng NEGOTIATION
Wickens NestleGermanyIvan Magalhaes NEGOTIATION
Clifford RimBrazilElwin Sharvill NEW
Salvatore StockhamItalyAmy Elsner RENEWAL
Jennifer AmigonAustraliaIoni Bowcher RENEWAL
Claire TollnerIndiaAnna Fali UNQUALIFIED
Aruna FigeroaGermanyIoni Bowcher NEGOTIATION
Darci PoquetteItalyOnyama Limba QUALIFIED
Jefferson SchemmerUnited KingdomXuxue Feng NEGOTIATION
Faith GillianFranceXuxue Feng NEGOTIATION
Aika InouyeRussiaBernardo Dominic RENEWAL
Ivar PaprockiFranceOnyama Limba NEGOTIATION
Leja CaldareraRussiaAmy Elsner NEGOTIATION
Antonio CaudyGermanyAsiya Javayant PROPOSAL
Ashley DoeIndiaIvan Magalhaes PROPOSAL
Maria MarrierBrazilAmy Elsner QUALIFIED
Kaitlin OstroskyItalyIvan Magalhaes UNQUALIFIED
Salvatore StockhamJapanAmy Elsner NEGOTIATION
Ivar PaprockiSpainOnyama Limba QUALIFIED
Sinclair WaycottItalyAsiya Javayant NEGOTIATION
Antonio CaudyGermanyAmy Elsner NEW
Maria MarrierRussiaAnna Fali NEW
Cody SaylorsCanadaBernardo Dominic PROPOSAL

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