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
Chavez BriddickCanadaAnna Fali NEGOTIATION
Kadeem FlosiGermanyStephen Shaw UNQUALIFIED
Antonio CaudyArgentinaOnyama Limba NEGOTIATION
Cody SaylorsCanadaIvan Magalhaes UNQUALIFIED
Maisha RulapaughBrazilAnna Fali NEGOTIATION
Jennifer AmigonIndiaIvan Magalhaes NEW
David DarakjyRussiaOnyama Limba UNQUALIFIED
Maria MarrierArgentinaElwin Sharvill RENEWAL
Aika InouyeArgentinaAsiya Javayant UNQUALIFIED
Maisha RulapaughSpainAnna Fali RENEWAL
Tony FollerCanadaOnyama Limba UNQUALIFIED
Kadeem FlosiItalyAmy Elsner UNQUALIFIED
Salvatore StockhamArgentinaOnyama Limba NEGOTIATION
James ButtFranceIvan Magalhaes NEW
Misaki RoysterRussiaAsiya Javayant UNQUALIFIED
Morrow RutaUnited KingdomOnyama Limba QUALIFIED
Isabel BowleyGermanyXuxue Feng QUALIFIED
Silvio SlusarskiIndiaBernardo Dominic RENEWAL
Mayumi KolmetzItalyBernardo Dominic QUALIFIED
Rodrigues CampainAustraliaAsiya Javayant PROPOSAL
Ashley DoeSpainBernardo Dominic UNQUALIFIED
Cody SaylorsItalyBernardo Dominic QUALIFIED
Rodrigues CampainUnited KingdomAmy Elsner QUALIFIED
Antonio CaudyCanadaAnna Fali NEGOTIATION
Murillo MaletBrazilIvan Magalhaes RENEWAL
Silvio SlusarskiUnited KingdomAmy Elsner QUALIFIED
Murillo MaletSpainAsiya Javayant QUALIFIED
Ashley DoeCanadaBernardo Dominic NEGOTIATION
Jones VocelkaArgentinaIvan Magalhaes QUALIFIED
Stacey MacleadSpainStephen Shaw NEW
Jennifer AmigonArgentinaIoni Bowcher NEW
David DarakjySpainAmy Elsner NEGOTIATION
Faith GillianArgentinaIvan Magalhaes PROPOSAL
Darci PoquetteJapanIvan Magalhaes NEW
James ButtUnited KingdomIvan Magalhaes PROPOSAL
Maisha RulapaughSpainAnna Fali NEGOTIATION
Octavia MaletCanadaAsiya Javayant PROPOSAL
Julie StensethSpainIoni Bowcher PROPOSAL
Mayumi KolmetzJapanStephen Shaw PROPOSAL
Leja CaldareraJapanElwin Sharvill RENEWAL
Murillo MaletFranceOnyama Limba NEGOTIATION
Faith GillianBrazilAmy Elsner UNQUALIFIED
Leja CaldareraFranceIvan Magalhaes RENEWAL
Munro FerenczItalyIoni Bowcher NEGOTIATION
Mujtaba NickaGermanyBernardo Dominic UNQUALIFIED
Ashley DoeJapanAsiya Javayant RENEWAL
Antonio CaudyRussiaAsiya Javayant UNQUALIFIED
Kaitlin OstroskyAustraliaAsiya Javayant RENEWAL
Clifford RimSpainBernardo Dominic NEGOTIATION
Salvatore StockhamAustraliaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Adams MorascaIndiaOnyama Limba QUALIFIED
Maria MarrierBrazilAnna Fali NEW
Ricardo GauchoJapanAnna Fali NEW
Murillo MaletIndiaAsiya Javayant UNQUALIFIED
Morrow RutaFranceOnyama Limba QUALIFIED
Deepesh ChuiSpainAsiya Javayant NEW
Mujtaba NickaRussiaStephen Shaw RENEWAL
Murillo MaletJapanBernardo Dominic UNQUALIFIED
Costa DilliardUnited KingdomBernardo Dominic QUALIFIED
Jennifer AmigonSpainIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues CampainCanada2025-07-11Feiner Bros PROPOSAL97Ioni Bowcher
1001Ashley DoeJapan2025-07-22Chapman, Ross E Esq RENEWAL64Xuxue Feng
1002Sinclair WaycottBrazil2025-08-05Feltz Printing Service NEW74Amy Elsner
1003Octavia MaletSpain2025-07-21Commercial Press QUALIFIED99Ioni Bowcher
1004Emily WhobreyIndia2025-07-16Feltz Printing Service RENEWAL31Xuxue Feng
1005Munro FerenczBrazil2025-07-11King, Christopher A Esq QUALIFIED12Elwin Sharvill
1006Salvatore StockhamAustralia2025-07-07Buckley Miller Wright PROPOSAL35Asiya Javayant
1007Murillo MaletRussia2025-07-10Rangoni Of Florence NEW40Xuxue Feng
1008Morrow RutaIndia2025-08-05Morlong Associates UNQUALIFIED34Asiya Javayant
1009Kaitlin OstroskyAustralia2025-07-16Rousseaux, Michael Esq RENEWAL78Asiya Javayant
1010Octavia MaletUnited Kingdom2025-08-02Printing Dimensions PROPOSAL30Bernardo Dominic
1011Morrow RutaRussia2025-07-22Buckley Miller Wright PROPOSAL34Amy Elsner
1012Greenwood BologniaUnited Kingdom2025-07-19Truhlar And Truhlar Attys NEGOTIATION82Bernardo Dominic
1013Jeanfrancois VenereUnited Kingdom2025-07-13Chemel, James L Cpa NEGOTIATION22Asiya Javayant
1014Nicolas IturbideRussia2025-07-25Chapman, Ross E Esq NEW95Xuxue Feng
1015Costa DilliardRussia2025-07-30Benton, John B Jr NEW21Ivan Magalhaes
1016Greenwood BologniaCanada2025-07-26Chemel, James L Cpa NEGOTIATION10Xuxue Feng
1017Antonio CaudySpain2025-07-08Rangoni Of Florence UNQUALIFIED8Asiya Javayant
1018Alejandro PerinUnited Kingdom2025-07-21Commercial Press NEGOTIATION18Elwin Sharvill
1019David DarakjyItaly2025-07-26Chemel, James L Cpa QUALIFIED21Xuxue Feng
1020Aditya KuskoAustralia2025-08-01Dorl, James J Esq PROPOSAL70Elwin Sharvill
1021Emily WhobreyAustralia2025-08-02Dorl, James J Esq UNQUALIFIED31Ioni Bowcher
1022Emily WhobreyIndia2025-07-16Rousseaux, Michael Esq UNQUALIFIED69Ioni Bowcher
1023Kaitlin OstroskyIndia2025-08-03Feltz Printing Service QUALIFIED11Asiya Javayant
1024Ricardo GauchoArgentina2025-07-23Morlong Associates QUALIFIED30Xuxue Feng
1025Leja CaldareraSpain2025-07-14Chanay, Jeffrey A Esq UNQUALIFIED58Elwin Sharvill
1026Izzy GarufiBrazil2025-07-25Morlong Associates RENEWAL49Elwin Sharvill
1027Francesco ShinkoUnited Kingdom2025-08-02Buckley Miller Wright NEGOTIATION43Amy Elsner
1028Arvin AlbaresArgentina2025-07-14King, Christopher A Esq QUALIFIED47Ioni Bowcher
1029Francesco ShinkoIndia2025-07-31Printing Dimensions UNQUALIFIED42Amy Elsner
1030Adams MorascaJapan2025-07-14Rousseaux, Michael Esq UNQUALIFIED78Ioni Bowcher
1031Maisha RulapaughBrazil2025-07-17Chanay, Jeffrey A Esq RENEWAL44Anna Fali
1032Francesco ShinkoItaly2025-07-25Printing Dimensions NEGOTIATION0Ioni Bowcher
1033Adams MorascaUnited Kingdom2025-07-13Commercial Press NEW34Xuxue Feng
1034Aika InouyeArgentina2025-07-27Printing Dimensions PROPOSAL53Amy Elsner
1035Smith GlickGermany2025-07-07King, Christopher A Esq RENEWAL90Elwin Sharvill
1036Francesco ShinkoItaly2025-07-22Morlong Associates RENEWAL14Elwin Sharvill
1037Aditya KuskoSpain2025-08-05Rangoni Of Florence RENEWAL75Stephen Shaw
1038Aika InouyeArgentina2025-07-16Chanay, Jeffrey A Esq QUALIFIED67Bernardo Dominic
1039Faith GillianAustralia2025-07-08Feiner Bros NEGOTIATION28Elwin Sharvill
1040Stacey MacleadCanada2025-07-12Chapman, Ross E Esq UNQUALIFIED27Bernardo Dominic
1041Arvin AlbaresSpain2025-08-04Feiner Bros QUALIFIED38Ivan Magalhaes
1042Mayumi KolmetzUnited Kingdom2025-07-30Buckley Miller Wright NEW43Amy Elsner
1043Johnson SergiJapan2025-08-02Feiner Bros PROPOSAL78Bernardo Dominic
1044Rodrigues CampainIndia2025-08-01Buckley Miller Wright RENEWAL87Onyama Limba
1045Sinclair WaycottUnited Kingdom2025-07-15Printing Dimensions UNQUALIFIED71Amy Elsner
1046David DarakjyGermany2025-07-30Printing Dimensions NEGOTIATION91Onyama Limba
1047Maisha RulapaughRussia2025-08-04Truhlar And Truhlar Attys NEW35Elwin Sharvill
1048Kadeem FlosiGermany2025-07-23Morlong Associates UNQUALIFIED48Onyama Limba
1049Silvio SlusarskiFrance2025-07-31Buckley Miller Wright UNQUALIFIED25Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Emily WhobreyAustraliaXuxue Feng QUALIFIED
Jeanfrancois VenereGermanyOnyama Limba PROPOSAL
Cody SaylorsGermanyElwin Sharvill NEGOTIATION
Izzy GarufiItalyIvan Magalhaes UNQUALIFIED
Faith GillianUnited KingdomXuxue Feng NEW
Chavez BriddickSpainIvan Magalhaes NEGOTIATION
Arvin AlbaresFranceOnyama Limba RENEWAL
Darci PoquetteCanadaXuxue Feng UNQUALIFIED
Isabel BowleyJapanAnna Fali PROPOSAL
Costa DilliardRussiaIoni Bowcher UNQUALIFIED
Jones VocelkaItalyBernardo Dominic NEGOTIATION
Maria MarrierCanadaElwin Sharvill QUALIFIED
David DarakjyUnited KingdomElwin Sharvill NEGOTIATION
Sinclair WaycottFranceIoni Bowcher NEGOTIATION
Jennifer AmigonBrazilIvan Magalhaes NEW
Sinclair WaycottJapanOnyama Limba UNQUALIFIED
Deepesh ChuiItalyStephen Shaw NEW
Nicolas IturbideFranceAnna Fali UNQUALIFIED
Clifford RimCanadaAnna Fali UNQUALIFIED
Emily WhobreyIndiaElwin Sharvill NEW
Izzy GarufiUnited KingdomIvan Magalhaes NEW
David DarakjyIndiaAmy Elsner QUALIFIED
Murillo MaletUnited KingdomIoni Bowcher UNQUALIFIED
Jones VocelkaRussiaStephen Shaw QUALIFIED
Julie StensethCanadaAsiya Javayant QUALIFIED
Emily WhobreyItalyIvan Magalhaes NEW
Mayumi KolmetzIndiaBernardo Dominic NEW
Nicolas IturbideGermanyIvan Magalhaes NEGOTIATION
Maisha RulapaughCanadaElwin Sharvill PROPOSAL
Johnson SergiFranceAnna Fali UNQUALIFIED
Mayumi KolmetzRussiaElwin Sharvill NEGOTIATION
Antonio CaudyCanadaIvan Magalhaes UNQUALIFIED
Izzy GarufiItalyOnyama Limba RENEWAL
Leon OldroydCanadaElwin Sharvill PROPOSAL
Chavez BriddickIndiaAsiya Javayant QUALIFIED
Costa DilliardJapanBernardo Dominic NEGOTIATION
Octavia MaletAustraliaAmy Elsner UNQUALIFIED
Salvatore StockhamBrazilElwin Sharvill PROPOSAL
Jones VocelkaJapanAnna Fali UNQUALIFIED
Munro FerenczFranceOnyama Limba NEW
James ButtIndiaStephen Shaw QUALIFIED
Octavia MaletIndiaOnyama Limba NEW
Tony FollerFranceElwin Sharvill QUALIFIED
Deepesh ChuiUnited KingdomXuxue Feng PROPOSAL
Adams MorascaJapanXuxue Feng NEW
Aruna FigeroaSpainAmy Elsner QUALIFIED
Jennifer AmigonUnited KingdomAmy Elsner QUALIFIED
Jefferson SchemmerItalyIvan Magalhaes NEW
Nicolas IturbideCanadaOnyama Limba RENEWAL
Francesco ShinkoBrazilOnyama Limba NEW
Frozen Columns
Name
Jeanfrancois Venere
Ashley Doe
Wickens Nestle
Jefferson Schemmer
Maria Marrier
Ricardo Gaucho
Julie Stenseth
Cody Saylors
Kaitlin Ostrosky
Mujtaba Nicka
Salvatore Stockham
Tony Foller
Jefferson Schemmer
Arvin Albares
Chavez Briddick
Tony Foller
Rodrigues Campain
Greenwood Bolognia
Smith Glick
Isabel Bowley
Jeanfrancois Venere
Jefferson Schemmer
Chavez Briddick
Francesco Shinko
Nicolas Iturbide
Ricardo Gaucho
David Darakjy
Jeanfrancois Venere
Antonio Caudy
Munro Ferencz
Ricardo Gaucho
Francesco Shinko
Aruna Figeroa
Octavia Malet
Izzy Garufi
Sinclair Waycott
Leon Oldroyd
Salvatore Stockham
Misaki Royster
Claire Tollner
Jones Vocelka
Jefferson Schemmer
Wickens Nestle
Misaki Royster
Stacey Maclead
Jennifer Amigon
Salvatore Stockham
Izzy Garufi
Salvatore Stockham
Emily Whobrey
IdCountryDate
1000Russia2025-07-14
1001Brazil2025-07-13
1002India2025-07-12
1003Australia2025-07-31
1004Spain2025-07-20
1005Germany2025-08-05
1006India2025-07-30
1007France2025-07-20
1008Canada2025-07-17
1009Italy2025-07-19
1010France2025-07-14
1011Brazil2025-07-30
1012Spain2025-07-25
1013Argentina2025-07-21
1014Spain2025-07-09
1015Russia2025-07-18
1016United Kingdom2025-07-22
1017Russia2025-07-30
1018United Kingdom2025-07-14
1019Germany2025-07-07
1020France2025-07-24
1021Spain2025-07-09
1022United Kingdom2025-07-08
1023France2025-07-27
1024Brazil2025-07-21
1025Japan2025-07-10
1026Italy2025-07-12
1027United Kingdom2025-07-24
1028United Kingdom2025-07-30
1029Spain2025-07-14
1030Argentina2025-07-28
1031Canada2025-07-11
1032Argentina2025-07-26
1033India2025-07-07
1034United Kingdom2025-07-09
1035Australia2025-07-10
1036Argentina2025-07-28
1037France2025-07-30
1038Germany2025-07-09
1039United Kingdom2025-07-22
1040Argentina2025-08-03
1041Australia2025-07-25
1042France2025-07-21
1043Argentina2025-07-31
1044Australia2025-07-30
1045Canada2025-07-24
1046Spain2025-07-12
1047Germany2025-07-30
1048France2025-08-01
1049France2025-07-16

On-Demand Data

NameIdCountryDate
Morrow Ruta1000Germany2025-07-30
Silvio Slusarski1001Brazil2025-07-15
Maria Marrier1002France2025-07-14
Kadeem Flosi1003United Kingdom2025-07-26
Tony Foller1004Germany2025-07-27
Adams Morasca1005United Kingdom2025-07-27
Ashley Doe1006Russia2025-07-24
Mayumi Kolmetz1007Germany2025-07-19
James Butt1008Argentina2025-07-17
Adams Morasca1009United Kingdom2025-08-03
Antonio Caudy1010Australia2025-07-25
Smith Glick1011Spain2025-07-09
Juan Wieser1012Italy2025-07-25
Claire Tollner1013Germany2025-08-03
Misaki Royster1014India2025-07-30
Aika Inouye1015Italy2025-08-05
Misaki Royster1016Brazil2025-07-16
Darci Poquette1017Spain2025-08-02
Maria Marrier1018France2025-07-21
Kaitlin Ostrosky1019India2025-07-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair WaycottAustraliaIvan Magalhaes NEGOTIATION
Jennifer AmigonItalyElwin Sharvill NEGOTIATION
Mujtaba NickaItalyXuxue Feng NEW
Julie StensethBrazilAmy Elsner UNQUALIFIED
Cody SaylorsAustraliaOnyama Limba PROPOSAL
Maisha RulapaughSpainXuxue Feng NEW
Deepesh ChuiArgentinaStephen Shaw UNQUALIFIED
Jones VocelkaSpainAsiya Javayant NEGOTIATION
Tony FollerBrazilElwin Sharvill NEGOTIATION
Julie StensethJapanIoni Bowcher RENEWAL
Julie StensethArgentinaStephen Shaw NEW
Ashley DoeGermanyAmy Elsner NEW
Isabel BowleyGermanyOnyama Limba NEGOTIATION
Juan WieserFranceStephen Shaw NEGOTIATION
James ButtRussiaStephen Shaw NEGOTIATION
Clifford RimAustraliaXuxue Feng NEW
Emily WhobreySpainXuxue Feng PROPOSAL
Nicolas IturbideFranceOnyama Limba NEW
Claire TollnerRussiaElwin Sharvill NEGOTIATION
Kadeem FlosiFranceIoni Bowcher RENEWAL
Silvio SlusarskiUnited KingdomAmy Elsner NEGOTIATION
Ricardo GauchoFranceIoni Bowcher UNQUALIFIED
Aditya KuskoFranceStephen Shaw NEW
Kadeem FlosiRussiaXuxue Feng PROPOSAL
Julie StensethRussiaStephen Shaw QUALIFIED
Ivar PaprockiIndiaIoni Bowcher RENEWAL
Morrow RutaIndiaStephen Shaw PROPOSAL
Adams MorascaRussiaIoni Bowcher UNQUALIFIED
Juan WieserRussiaXuxue Feng RENEWAL
Smith GlickJapanIvan Magalhaes QUALIFIED
Alejandro PerinArgentinaOnyama Limba NEW
Rodrigues CampainArgentinaElwin Sharvill RENEWAL
Emily WhobreyCanadaStephen Shaw UNQUALIFIED
Aditya KuskoItalyXuxue Feng NEGOTIATION
Izzy GarufiGermanyIvan Magalhaes NEGOTIATION
Izzy GarufiBrazilOnyama Limba RENEWAL
Jefferson SchemmerAustraliaAsiya Javayant PROPOSAL
Kaitlin OstroskyBrazilAnna Fali RENEWAL
Faith GillianSpainAsiya Javayant NEW
Antonio CaudyItalyAsiya Javayant 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>