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
Izzy GarufiCanadaOnyama Limba NEGOTIATION
Ricardo GauchoSpainElwin Sharvill NEW
Morrow RutaRussiaElwin Sharvill QUALIFIED
Julie StensethJapanOnyama Limba NEW
Mujtaba NickaCanadaIoni Bowcher NEGOTIATION
Alejandro PerinBrazilIoni Bowcher PROPOSAL
Johnson SergiUnited KingdomAsiya Javayant QUALIFIED
Kadeem FlosiAustraliaAnna Fali NEGOTIATION
Misaki RoysterUnited KingdomAsiya Javayant UNQUALIFIED
Faith GillianGermanyOnyama Limba UNQUALIFIED
Chavez BriddickGermanyAsiya Javayant UNQUALIFIED
Clifford RimSpainStephen Shaw PROPOSAL
Mujtaba NickaArgentinaOnyama Limba PROPOSAL
Aruna FigeroaRussiaOnyama Limba PROPOSAL
Mujtaba NickaRussiaIoni Bowcher PROPOSAL
Juan WieserRussiaIoni Bowcher PROPOSAL
Leja CaldareraSpainStephen Shaw UNQUALIFIED
Mujtaba NickaJapanIvan Magalhaes NEW
Misaki RoysterUnited KingdomStephen Shaw RENEWAL
Leon OldroydAustraliaAmy Elsner NEGOTIATION
Juan WieserIndiaElwin Sharvill RENEWAL
Wickens NestleArgentinaIoni Bowcher NEGOTIATION
Silvio SlusarskiJapanElwin Sharvill NEGOTIATION
Sinclair WaycottBrazilAnna Fali NEW
Wickens NestleSpainStephen Shaw QUALIFIED
Juan WieserRussiaBernardo Dominic UNQUALIFIED
Murillo MaletCanadaIoni Bowcher RENEWAL
Deepesh ChuiFranceElwin Sharvill UNQUALIFIED
Emily WhobreyItalyAsiya Javayant UNQUALIFIED
Aditya KuskoJapanAnna Fali NEGOTIATION
Murillo MaletJapanIoni Bowcher UNQUALIFIED
Salvatore StockhamUnited KingdomOnyama Limba UNQUALIFIED
Leja CaldareraItalyBernardo Dominic NEW
Jefferson SchemmerArgentinaStephen Shaw NEGOTIATION
Clifford RimGermanyIoni Bowcher UNQUALIFIED
Munro FerenczJapanOnyama Limba RENEWAL
Smith GlickCanadaIvan Magalhaes NEGOTIATION
Morrow RutaFranceIoni Bowcher PROPOSAL
Darci PoquetteCanadaElwin Sharvill NEGOTIATION
Clifford RimBrazilAnna Fali NEGOTIATION
Ricardo GauchoAustraliaOnyama Limba RENEWAL
Faith GillianSpainBernardo Dominic NEGOTIATION
Francesco ShinkoUnited KingdomOnyama Limba UNQUALIFIED
Morrow RutaBrazilElwin Sharvill UNQUALIFIED
Aditya KuskoRussiaElwin Sharvill UNQUALIFIED
Julie StensethArgentinaAnna Fali RENEWAL
Mayumi KolmetzSpainOnyama Limba PROPOSAL
Juan WieserGermanyStephen Shaw NEW
Jeanfrancois VenereFranceElwin Sharvill RENEWAL
Kaitlin OstroskyIndiaIvan Magalhaes NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Costa DilliardItalyIvan Magalhaes NEW
Alejandro PerinRussiaIoni Bowcher NEW
Leon OldroydItalyStephen Shaw UNQUALIFIED
Ashley DoeAustraliaAmy Elsner QUALIFIED
Jefferson SchemmerArgentinaElwin Sharvill QUALIFIED
Misaki RoysterBrazilStephen Shaw UNQUALIFIED
Costa DilliardFranceAnna Fali PROPOSAL
Morrow RutaJapanElwin Sharvill NEGOTIATION
Jones VocelkaCanadaIvan Magalhaes NEW
Chavez BriddickRussiaOnyama Limba QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas IturbideItaly2026-04-10Feltz Printing Service NEGOTIATION14Xuxue Feng
1001Deepesh ChuiJapan2026-04-16Chemel, James L Cpa UNQUALIFIED26Ioni Bowcher
1002Jefferson SchemmerArgentina2026-04-20Chanay, Jeffrey A Esq PROPOSAL17Asiya Javayant
1003Arvin AlbaresSpain2026-04-01Feiner Bros NEW15Amy Elsner
1004Juan WieserUnited Kingdom2026-04-07Buckley Miller Wright PROPOSAL69Elwin Sharvill
1005Tony FollerUnited Kingdom2026-04-09Morlong Associates NEW67Stephen Shaw
1006Julie StensethCanada2026-04-02Buckley Miller Wright UNQUALIFIED2Bernardo Dominic
1007Ashley DoeArgentina2026-03-31Rangoni Of Florence UNQUALIFIED50Onyama Limba
1008Nicolas IturbideCanada2026-04-09Buckley Miller Wright RENEWAL50Anna Fali
1009Maria MarrierIndia2026-04-15Printing Dimensions PROPOSAL60Ioni Bowcher
1010Mujtaba NickaAustralia2026-04-08Chanay, Jeffrey A Esq PROPOSAL68Ioni Bowcher
1011Murillo MaletArgentina2026-04-04Rangoni Of Florence RENEWAL42Xuxue Feng
1012Sinclair WaycottArgentina2026-04-14Feltz Printing Service PROPOSAL81Onyama Limba
1013Johnson SergiArgentina2026-04-23Commercial Press NEW59Ivan Magalhaes
1014Mayumi KolmetzArgentina2026-04-25Chapman, Ross E Esq NEW75Amy Elsner
1015Costa DilliardItaly2026-03-28King, Christopher A Esq RENEWAL14Anna Fali
1016Jefferson SchemmerBrazil2026-04-17Rangoni Of Florence PROPOSAL66Ivan Magalhaes
1017Alejandro PerinCanada2026-04-06Benton, John B Jr PROPOSAL51Stephen Shaw
1018Wickens NestleRussia2026-03-29Benton, John B Jr QUALIFIED50Ivan Magalhaes
1019Adams MorascaArgentina2026-03-31Commercial Press NEGOTIATION33Asiya Javayant
1020Aika InouyeFrance2026-04-26Chapman, Ross E Esq PROPOSAL42Asiya Javayant
1021Leon OldroydFrance2026-04-16Feltz Printing Service UNQUALIFIED15Bernardo Dominic
1022Mayumi KolmetzGermany2026-04-01Feiner Bros UNQUALIFIED13Bernardo Dominic
1023Costa DilliardArgentina2026-03-29Commercial Press UNQUALIFIED84Elwin Sharvill
1024Murillo MaletFrance2026-04-08Rangoni Of Florence NEW87Elwin Sharvill
1025Claire TollnerFrance2026-04-11Rangoni Of Florence NEW75Elwin Sharvill
1026Antonio CaudyItaly2026-04-19Chemel, James L Cpa UNQUALIFIED24Asiya Javayant
1027Smith GlickJapan2026-04-01Buckley Miller Wright UNQUALIFIED90Anna Fali
1028Kaitlin OstroskyJapan2026-04-02King, Christopher A Esq NEGOTIATION63Bernardo Dominic
1029Ivar PaprockiAustralia2026-04-08Commercial Press RENEWAL66Onyama Limba
1030Wickens NestleFrance2026-03-30Rangoni Of Florence PROPOSAL93Onyama Limba
1031Ashley DoeFrance2026-04-16Chemel, James L Cpa UNQUALIFIED73Bernardo Dominic
1032Francesco ShinkoSpain2026-04-19Feiner Bros QUALIFIED50Xuxue Feng
1033Ivar PaprockiAustralia2026-04-23Feltz Printing Service UNQUALIFIED48Bernardo Dominic
1034Isabel BowleyIndia2026-03-29Dorl, James J Esq PROPOSAL86Amy Elsner
1035Nicolas IturbideGermany2026-04-12Chanay, Jeffrey A Esq RENEWAL22Amy Elsner
1036Munro FerenczSpain2026-03-28Benton, John B Jr NEGOTIATION45Ioni Bowcher
1037Mayumi KolmetzFrance2026-04-05Chemel, James L Cpa NEGOTIATION40Elwin Sharvill
1038Darci PoquetteArgentina2026-04-07Printing Dimensions RENEWAL87Elwin Sharvill
1039Leja CaldareraIndia2026-03-29Buckley Miller Wright PROPOSAL14Asiya Javayant
1040Jennifer AmigonJapan2026-04-13Chemel, James L Cpa QUALIFIED4Ioni Bowcher
1041Ashley DoeArgentina2026-04-01King, Christopher A Esq QUALIFIED22Asiya Javayant
1042Claire TollnerAustralia2026-04-10Chemel, James L Cpa NEGOTIATION54Ioni Bowcher
1043Aruna FigeroaCanada2026-04-02Chapman, Ross E Esq RENEWAL90Asiya Javayant
1044Salvatore StockhamItaly2026-04-13Morlong Associates PROPOSAL95Amy Elsner
1045Isabel BowleyGermany2026-04-06King, Christopher A Esq UNQUALIFIED72Ivan Magalhaes
1046Sinclair WaycottIndia2026-04-21Chanay, Jeffrey A Esq NEW80Elwin Sharvill
1047David DarakjyItaly2026-04-01King, Christopher A Esq PROPOSAL56Amy Elsner
1048Cody SaylorsGermany2026-04-17Truhlar And Truhlar Attys RENEWAL1Elwin Sharvill
1049Silvio SlusarskiFrance2026-04-02Printing Dimensions UNQUALIFIED93Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Aika InouyeRussiaXuxue Feng UNQUALIFIED
Jefferson SchemmerCanadaElwin Sharvill NEW
Salvatore StockhamGermanyXuxue Feng PROPOSAL
James ButtRussiaAsiya Javayant UNQUALIFIED
Tony FollerGermanyAsiya Javayant UNQUALIFIED
Kadeem FlosiUnited KingdomAmy Elsner UNQUALIFIED
Clifford RimArgentinaStephen Shaw QUALIFIED
Chavez BriddickRussiaAmy Elsner QUALIFIED
Maria MarrierIndiaBernardo Dominic RENEWAL
David DarakjyJapanAnna Fali NEW
Deepesh ChuiAustraliaIvan Magalhaes UNQUALIFIED
Antonio CaudyFranceAnna Fali NEGOTIATION
Jennifer AmigonJapanBernardo Dominic NEW
Arvin AlbaresGermanyOnyama Limba PROPOSAL
Claire TollnerBrazilXuxue Feng NEGOTIATION
Alejandro PerinCanadaIoni Bowcher NEGOTIATION
Greenwood BologniaIndiaIvan Magalhaes QUALIFIED
Kadeem FlosiArgentinaIvan Magalhaes QUALIFIED
Julie StensethArgentinaIvan Magalhaes QUALIFIED
Misaki RoysterGermanyBernardo Dominic NEGOTIATION
Juan WieserArgentinaStephen Shaw RENEWAL
Izzy GarufiRussiaAnna Fali NEGOTIATION
Sinclair WaycottRussiaOnyama Limba UNQUALIFIED
Aika InouyeUnited KingdomStephen Shaw RENEWAL
Octavia MaletGermanyAnna Fali RENEWAL
Deepesh ChuiGermanyStephen Shaw NEW
Leon OldroydArgentinaXuxue Feng RENEWAL
Nicolas IturbideFranceOnyama Limba QUALIFIED
Faith GillianSpainXuxue Feng PROPOSAL
Murillo MaletSpainIoni Bowcher PROPOSAL
Darci PoquetteRussiaAmy Elsner NEGOTIATION
Salvatore StockhamGermanyIvan Magalhaes RENEWAL
Nicolas IturbideIndiaIoni Bowcher UNQUALIFIED
Juan WieserArgentinaStephen Shaw PROPOSAL
Clifford RimSpainAnna Fali PROPOSAL
Darci PoquetteBrazilAsiya Javayant QUALIFIED
Julie StensethIndiaXuxue Feng UNQUALIFIED
Faith GillianGermanyOnyama Limba NEGOTIATION
Mujtaba NickaJapanOnyama Limba NEW
Ricardo GauchoUnited KingdomStephen Shaw NEGOTIATION
Leja CaldareraItalyOnyama Limba NEW
Salvatore StockhamJapanBernardo Dominic UNQUALIFIED
Mujtaba NickaItalyAnna Fali RENEWAL
Claire TollnerRussiaXuxue Feng RENEWAL
James ButtBrazilAmy Elsner NEW
Clifford RimSpainAnna Fali PROPOSAL
Leja CaldareraRussiaIoni Bowcher NEW
Mujtaba NickaAustraliaStephen Shaw UNQUALIFIED
Octavia MaletGermanyBernardo Dominic RENEWAL
Jennifer AmigonFranceStephen Shaw RENEWAL
Frozen Columns
Name
Jennifer Amigon
Clifford Rim
Aruna Figeroa
Nicolas Iturbide
Jefferson Schemmer
Juan Wieser
Aditya Kusko
James Butt
Wickens Nestle
Tony Foller
Nicolas Iturbide
Kaitlin Ostrosky
Munro Ferencz
Octavia Malet
Chavez Briddick
Antonio Caudy
Adams Morasca
Izzy Garufi
Francesco Shinko
Maisha Rulapaugh
Kadeem Flosi
David Darakjy
Clifford Rim
Munro Ferencz
Ricardo Gaucho
Clifford Rim
Cody Saylors
Jennifer Amigon
Ricardo Gaucho
Aika Inouye
Chavez Briddick
Kadeem Flosi
Faith Gillian
Mujtaba Nicka
Jennifer Amigon
Nicolas Iturbide
Izzy Garufi
Munro Ferencz
Mayumi Kolmetz
Murillo Malet
Nicolas Iturbide
Nicolas Iturbide
Leon Oldroyd
James Butt
Kadeem Flosi
Ivar Paprocki
James Butt
Darci Poquette
Cody Saylors
David Darakjy
IdCountryDate
1000Russia2026-04-13
1001Spain2026-04-26
1002Japan2026-04-19
1003Spain2026-04-24
1004Italy2026-04-19
1005United Kingdom2026-04-20
1006Russia2026-04-22
1007France2026-04-11
1008Brazil2026-04-14
1009Canada2026-04-03
1010France2026-04-08
1011Germany2026-04-04
1012Brazil2026-04-17
1013India2026-04-24
1014Germany2026-04-13
1015Australia2026-04-21
1016Russia2026-03-29
1017Spain2026-04-26
1018Canada2026-03-29
1019Italy2026-03-31
1020Canada2026-04-12
1021Russia2026-04-02
1022Spain2026-04-19
1023Russia2026-04-01
1024Russia2026-04-07
1025Spain2026-04-03
1026France2026-04-07
1027Japan2026-04-26
1028Argentina2026-04-07
1029Japan2026-04-02
1030Italy2026-04-13
1031Brazil2026-04-06
1032United Kingdom2026-04-15
1033Italy2026-04-20
1034Argentina2026-04-10
1035Germany2026-04-19
1036Russia2026-04-09
1037Brazil2026-04-13
1038Brazil2026-04-20
1039India2026-04-26
1040Canada2026-03-31
1041Australia2026-04-04
1042France2026-04-21
1043Germany2026-04-23
1044Italy2026-04-16
1045Spain2026-04-14
1046Spain2026-03-29
1047United Kingdom2026-04-03
1048India2026-04-06
1049Brazil2026-03-31

On-Demand Data

NameIdCountryDate
Munro Ferencz1000Spain2026-04-19
Jones Vocelka1001Spain2026-04-22
Greenwood Bolognia1002Brazil2026-04-01
Greenwood Bolognia1003Russia2026-04-04
Cody Saylors1004Japan2026-04-01
Leja Caldarera1005Italy2026-03-30
Mujtaba Nicka1006United Kingdom2026-04-04
Jeanfrancois Venere1007Italy2026-04-20
Ashley Doe1008Argentina2026-04-22
Mujtaba Nicka1009Argentina2026-04-21
Francesco Shinko1010Russia2026-04-19
Emily Whobrey1011Japan2026-04-24
Wickens Nestle1012Italy2026-04-22
Jefferson Schemmer1013United Kingdom2026-04-14
Wickens Nestle1014Germany2026-04-08
Nicolas Iturbide1015Australia2026-04-10
Maisha Rulapaugh1016Germany2026-03-29
Alejandro Perin1017United Kingdom2026-03-28
Ashley Doe1018Australia2026-04-22
David Darakjy1019Germany2026-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ricardo GauchoUnited KingdomElwin Sharvill NEGOTIATION
Costa DilliardRussiaElwin Sharvill UNQUALIFIED
Deepesh ChuiJapanAmy Elsner NEW
David DarakjyArgentinaElwin Sharvill UNQUALIFIED
Stacey MacleadSpainAmy Elsner NEW
Munro FerenczIndiaElwin Sharvill NEGOTIATION
Mujtaba NickaItalyAnna Fali NEW
Silvio SlusarskiArgentinaBernardo Dominic PROPOSAL
Rodrigues CampainBrazilAmy Elsner NEGOTIATION
Aika InouyeIndiaStephen Shaw NEW
Leon OldroydFranceAmy Elsner PROPOSAL
Mujtaba NickaAustraliaElwin Sharvill UNQUALIFIED
Jefferson SchemmerBrazilAnna Fali UNQUALIFIED
Rodrigues CampainCanadaAsiya Javayant RENEWAL
Salvatore StockhamIndiaAsiya Javayant NEW
Rodrigues CampainAustraliaStephen Shaw RENEWAL
Nicolas IturbideArgentinaOnyama Limba RENEWAL
Izzy GarufiBrazilElwin Sharvill UNQUALIFIED
Alejandro PerinIndiaAmy Elsner RENEWAL
Wickens NestleIndiaAnna Fali PROPOSAL
Adams MorascaIndiaBernardo Dominic UNQUALIFIED
Jennifer AmigonCanadaXuxue Feng QUALIFIED
Sinclair WaycottArgentinaAmy Elsner PROPOSAL
Stacey MacleadGermanyElwin Sharvill NEW
Ashley DoeGermanyStephen Shaw RENEWAL
Jennifer AmigonArgentinaStephen Shaw NEW
Salvatore StockhamIndiaXuxue Feng UNQUALIFIED
Aika InouyeCanadaOnyama Limba NEGOTIATION
Jones VocelkaItalyElwin Sharvill RENEWAL
Alejandro PerinSpainElwin Sharvill NEGOTIATION
Julie StensethCanadaElwin Sharvill NEGOTIATION
Maisha RulapaughUnited KingdomAsiya Javayant NEGOTIATION
Jefferson SchemmerAustraliaOnyama Limba UNQUALIFIED
Alejandro PerinArgentinaBernardo Dominic UNQUALIFIED
Silvio SlusarskiUnited KingdomBernardo Dominic PROPOSAL
Sinclair WaycottArgentinaAsiya Javayant NEGOTIATION
Mayumi KolmetzUnited KingdomOnyama Limba NEW
Greenwood BologniaAustraliaBernardo Dominic QUALIFIED
Mujtaba NickaItalyAsiya Javayant RENEWAL
Leon OldroydArgentinaOnyama Limba NEW

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