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
Kadeem FlosiRussiaStephen Shaw NEW
Rodrigues CampainArgentinaIoni Bowcher RENEWAL
Jefferson SchemmerBrazilAnna Fali QUALIFIED
Jones VocelkaAustraliaOnyama Limba RENEWAL
Smith GlickUnited KingdomIoni Bowcher NEGOTIATION
Nicolas IturbideRussiaBernardo Dominic PROPOSAL
Faith GillianArgentinaIvan Magalhaes RENEWAL
Cody SaylorsGermanyAsiya Javayant QUALIFIED
Kaitlin OstroskyRussiaStephen Shaw NEGOTIATION
Costa DilliardIndiaStephen Shaw NEW
Emily WhobreySpainOnyama Limba NEGOTIATION
Silvio SlusarskiCanadaElwin Sharvill QUALIFIED
Ivar PaprockiFranceXuxue Feng RENEWAL
Costa DilliardIndiaAsiya Javayant QUALIFIED
Kaitlin OstroskyItalyBernardo Dominic RENEWAL
Faith GillianFranceAnna Fali RENEWAL
Adams MorascaRussiaBernardo Dominic NEGOTIATION
Smith GlickFranceXuxue Feng NEGOTIATION
Francesco ShinkoArgentinaAnna Fali RENEWAL
Mayumi KolmetzAustraliaIvan Magalhaes PROPOSAL
Nicolas IturbideJapanIoni Bowcher NEGOTIATION
Stacey MacleadBrazilAsiya Javayant UNQUALIFIED
Isabel BowleyJapanBernardo Dominic PROPOSAL
Alejandro PerinItalyXuxue Feng NEGOTIATION
Salvatore StockhamAustraliaElwin Sharvill RENEWAL
Adams MorascaRussiaAmy Elsner QUALIFIED
Octavia MaletRussiaAsiya Javayant PROPOSAL
Maria MarrierBrazilElwin Sharvill PROPOSAL
Aditya KuskoItalyAsiya Javayant RENEWAL
Smith GlickAustraliaAmy Elsner PROPOSAL
Stacey MacleadIndiaIvan Magalhaes RENEWAL
Mujtaba NickaUnited KingdomIvan Magalhaes RENEWAL
David DarakjyFranceAnna Fali UNQUALIFIED
Francesco ShinkoSpainElwin Sharvill NEGOTIATION
Leja CaldareraSpainElwin Sharvill UNQUALIFIED
Darci PoquetteGermanyOnyama Limba NEW
Greenwood BologniaSpainBernardo Dominic UNQUALIFIED
Aditya KuskoRussiaIvan Magalhaes RENEWAL
Rodrigues CampainAustraliaElwin Sharvill RENEWAL
Ashley DoeRussiaAnna Fali NEW
Maisha RulapaughCanadaAnna Fali NEW
Octavia MaletSpainAmy Elsner QUALIFIED
Deepesh ChuiAustraliaIvan Magalhaes QUALIFIED
Sinclair WaycottJapanXuxue Feng RENEWAL
Misaki RoysterArgentinaElwin Sharvill RENEWAL
Leon OldroydSpainAsiya Javayant PROPOSAL
Mujtaba NickaUnited KingdomStephen Shaw NEGOTIATION
Claire TollnerBrazilStephen Shaw UNQUALIFIED
Nicolas IturbideIndiaStephen Shaw NEW
Isabel BowleyAustraliaAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Nicolas IturbideCanadaOnyama Limba NEW
Leon OldroydBrazilElwin Sharvill PROPOSAL
Rodrigues CampainItalyOnyama Limba PROPOSAL
Costa DilliardJapanAmy Elsner NEW
Francesco ShinkoIndiaAnna Fali NEGOTIATION
Ashley DoeItalyAsiya Javayant QUALIFIED
Greenwood BologniaItalyAmy Elsner NEW
Antonio CaudyBrazilXuxue Feng NEGOTIATION
Leja CaldareraRussiaIoni Bowcher UNQUALIFIED
Clifford RimFranceElwin Sharvill QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoJapan2026-05-15Chapman, Ross E Esq RENEWAL3Bernardo Dominic
1001Clifford RimItaly2026-05-19Rousseaux, Michael Esq RENEWAL87Anna Fali
1002Maisha RulapaughArgentina2026-05-13Chapman, Ross E Esq PROPOSAL48Anna Fali
1003Alejandro PerinIndia2026-05-27Commercial Press PROPOSAL13Anna Fali
1004Chavez BriddickItaly2026-05-21Printing Dimensions RENEWAL88Ivan Magalhaes
1005Jeanfrancois VenereGermany2026-05-27Feltz Printing Service RENEWAL16Bernardo Dominic
1006Wickens NestleItaly2026-05-12Feltz Printing Service PROPOSAL94Elwin Sharvill
1007Maria MarrierItaly2026-06-03King, Christopher A Esq RENEWAL51Amy Elsner
1008Mayumi KolmetzCanada2026-05-29Morlong Associates UNQUALIFIED65Elwin Sharvill
1009Maisha RulapaughArgentina2026-05-28Printing Dimensions NEGOTIATION8Ioni Bowcher
1010Maria MarrierSpain2026-05-31Chapman, Ross E Esq QUALIFIED40Elwin Sharvill
1011Maria MarrierCanada2026-05-28Rousseaux, Michael Esq UNQUALIFIED75Stephen Shaw
1012Kadeem FlosiIndia2026-05-11Dorl, James J Esq NEW90Xuxue Feng
1013Ivar PaprockiBrazil2026-05-28Chapman, Ross E Esq RENEWAL75Bernardo Dominic
1014Maisha RulapaughCanada2026-06-01Rousseaux, Michael Esq NEW78Elwin Sharvill
1015Deepesh ChuiAustralia2026-05-22Truhlar And Truhlar Attys QUALIFIED72Xuxue Feng
1016Francesco ShinkoJapan2026-06-05Buckley Miller Wright RENEWAL84Elwin Sharvill
1017Ricardo GauchoFrance2026-05-30Feltz Printing Service UNQUALIFIED17Amy Elsner
1018Rodrigues CampainJapan2026-05-10Feiner Bros PROPOSAL74Anna Fali
1019Rodrigues CampainJapan2026-05-13Benton, John B Jr PROPOSAL85Onyama Limba
1020Wickens NestleArgentina2026-05-27Feiner Bros QUALIFIED29Bernardo Dominic
1021Aruna FigeroaUnited Kingdom2026-05-11Dorl, James J Esq QUALIFIED56Ioni Bowcher
1022Sinclair WaycottFrance2026-06-04Printing Dimensions QUALIFIED99Onyama Limba
1023Johnson SergiGermany2026-06-01Commercial Press RENEWAL56Ivan Magalhaes
1024Octavia MaletGermany2026-05-15Printing Dimensions PROPOSAL12Ivan Magalhaes
1025Kadeem FlosiFrance2026-05-26Chapman, Ross E Esq NEGOTIATION16Elwin Sharvill
1026Johnson SergiUnited Kingdom2026-06-07Commercial Press RENEWAL4Stephen Shaw
1027Silvio SlusarskiCanada2026-06-03Chemel, James L Cpa QUALIFIED71Ioni Bowcher
1028Misaki RoysterAustralia2026-05-14Commercial Press RENEWAL12Bernardo Dominic
1029Deepesh ChuiUnited Kingdom2026-05-30Benton, John B Jr NEW6Amy Elsner
1030Claire TollnerRussia2026-06-07Printing Dimensions RENEWAL19Asiya Javayant
1031Aditya KuskoUnited Kingdom2026-05-23Rangoni Of Florence PROPOSAL15Ivan Magalhaes
1032Leon OldroydRussia2026-06-07Chapman, Ross E Esq NEGOTIATION96Bernardo Dominic
1033Ricardo GauchoRussia2026-05-29Truhlar And Truhlar Attys UNQUALIFIED43Xuxue Feng
1034Octavia MaletUnited Kingdom2026-05-11Feltz Printing Service UNQUALIFIED76Bernardo Dominic
1035Costa DilliardAustralia2026-05-30Chemel, James L Cpa RENEWAL98Asiya Javayant
1036Kaitlin OstroskyArgentina2026-05-18Dorl, James J Esq RENEWAL26Ivan Magalhaes
1037Chavez BriddickJapan2026-05-23Rangoni Of Florence QUALIFIED79Ivan Magalhaes
1038Stacey MacleadAustralia2026-06-01King, Christopher A Esq NEGOTIATION11Onyama Limba
1039Ricardo GauchoBrazil2026-06-08Rousseaux, Michael Esq NEGOTIATION59Xuxue Feng
1040Adams MorascaIndia2026-06-06Morlong Associates RENEWAL62Xuxue Feng
1041Leon OldroydItaly2026-05-17Benton, John B Jr NEGOTIATION56Asiya Javayant
1042David DarakjyRussia2026-05-15Feiner Bros NEW66Ivan Magalhaes
1043Kadeem FlosiItaly2026-05-18Feltz Printing Service NEGOTIATION91Bernardo Dominic
1044Maria MarrierCanada2026-05-23Chemel, James L Cpa RENEWAL92Xuxue Feng
1045Jones VocelkaRussia2026-06-06Chanay, Jeffrey A Esq NEW73Elwin Sharvill
1046Aditya KuskoGermany2026-06-04Rousseaux, Michael Esq NEW26Onyama Limba
1047Kadeem FlosiUnited Kingdom2026-05-12Feiner Bros NEW33Ivan Magalhaes
1048Cody SaylorsCanada2026-06-08Feltz Printing Service RENEWAL92Onyama Limba
1049David DarakjyAustralia2026-05-20Truhlar And Truhlar Attys RENEWAL85Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Ivar PaprockiSpainAsiya Javayant PROPOSAL
Deepesh ChuiIndiaOnyama Limba NEW
Francesco ShinkoUnited KingdomAmy Elsner NEW
Sinclair WaycottBrazilIvan Magalhaes PROPOSAL
Darci PoquetteBrazilXuxue Feng RENEWAL
Clifford RimRussiaAsiya Javayant QUALIFIED
Ricardo GauchoUnited KingdomXuxue Feng NEGOTIATION
Stacey MacleadGermanyIoni Bowcher NEGOTIATION
Alejandro PerinUnited KingdomXuxue Feng PROPOSAL
Kaitlin OstroskyJapanElwin Sharvill UNQUALIFIED
Darci PoquetteItalyBernardo Dominic UNQUALIFIED
Claire TollnerSpainAmy Elsner NEGOTIATION
Jefferson SchemmerGermanyXuxue Feng PROPOSAL
Juan WieserGermanyIoni Bowcher PROPOSAL
Greenwood BologniaJapanOnyama Limba QUALIFIED
Sinclair WaycottGermanyIoni Bowcher NEGOTIATION
Jones VocelkaCanadaIvan Magalhaes NEGOTIATION
Murillo MaletCanadaAnna Fali NEGOTIATION
Maria MarrierUnited KingdomAsiya Javayant RENEWAL
Wickens NestleJapanAsiya Javayant UNQUALIFIED
Darci PoquetteSpainBernardo Dominic QUALIFIED
Munro FerenczCanadaXuxue Feng NEGOTIATION
Adams MorascaUnited KingdomAmy Elsner UNQUALIFIED
Octavia MaletItalyIvan Magalhaes NEW
Munro FerenczItalyStephen Shaw QUALIFIED
Antonio CaudyItalyElwin Sharvill PROPOSAL
Juan WieserAustraliaBernardo Dominic UNQUALIFIED
Kadeem FlosiCanadaIvan Magalhaes RENEWAL
Jefferson SchemmerRussiaAsiya Javayant NEGOTIATION
Isabel BowleyGermanyStephen Shaw RENEWAL
Claire TollnerRussiaXuxue Feng UNQUALIFIED
James ButtSpainAmy Elsner QUALIFIED
Leja CaldareraRussiaXuxue Feng PROPOSAL
David DarakjyItalyIoni Bowcher RENEWAL
Stacey MacleadAustraliaOnyama Limba RENEWAL
Ivar PaprockiRussiaBernardo Dominic RENEWAL
Izzy GarufiIndiaBernardo Dominic QUALIFIED
Mayumi KolmetzCanadaAnna Fali NEW
Stacey MacleadRussiaAmy Elsner QUALIFIED
Sinclair WaycottJapanStephen Shaw UNQUALIFIED
Johnson SergiSpainBernardo Dominic PROPOSAL
Octavia MaletJapanXuxue Feng UNQUALIFIED
Sinclair WaycottIndiaOnyama Limba NEW
Aditya KuskoIndiaStephen Shaw PROPOSAL
Morrow RutaCanadaAsiya Javayant QUALIFIED
Juan WieserIndiaAsiya Javayant NEW
Silvio SlusarskiUnited KingdomIoni Bowcher UNQUALIFIED
Maria MarrierGermanyIoni Bowcher UNQUALIFIED
Costa DilliardAustraliaStephen Shaw NEW
Kadeem FlosiFranceStephen Shaw NEGOTIATION
Frozen Columns
Name
Smith Glick
Ivar Paprocki
Juan Wieser
Costa Dilliard
Juan Wieser
Munro Ferencz
Claire Tollner
Wickens Nestle
Sinclair Waycott
Isabel Bowley
Leja Caldarera
Wickens Nestle
Stacey Maclead
David Darakjy
Jeanfrancois Venere
Darci Poquette
Emily Whobrey
Rodrigues Campain
Isabel Bowley
Aditya Kusko
Jones Vocelka
Claire Tollner
Misaki Royster
Aika Inouye
Leon Oldroyd
Francesco Shinko
Stacey Maclead
Faith Gillian
Faith Gillian
Mayumi Kolmetz
Arvin Albares
Mayumi Kolmetz
Ivar Paprocki
Rodrigues Campain
Adams Morasca
Mujtaba Nicka
Clifford Rim
Antonio Caudy
Mujtaba Nicka
Aruna Figeroa
Cody Saylors
Ivar Paprocki
Octavia Malet
Morrow Ruta
Aditya Kusko
Juan Wieser
Arvin Albares
Leja Caldarera
Deepesh Chui
Wickens Nestle
IdCountryDate
1000India2026-05-28
1001Argentina2026-05-20
1002Canada2026-05-16
1003Spain2026-06-08
1004Japan2026-05-25
1005Australia2026-05-13
1006United Kingdom2026-05-28
1007Australia2026-05-12
1008Australia2026-05-16
1009Canada2026-05-16
1010Spain2026-05-31
1011Japan2026-05-14
1012Canada2026-05-18
1013Canada2026-05-24
1014Australia2026-05-25
1015Brazil2026-05-11
1016Japan2026-06-01
1017United Kingdom2026-05-10
1018France2026-06-03
1019Russia2026-06-01
1020France2026-05-20
1021Australia2026-06-05
1022Brazil2026-05-15
1023Canada2026-05-30
1024Japan2026-05-25
1025Germany2026-05-30
1026France2026-05-25
1027Spain2026-05-24
1028Australia2026-05-10
1029Australia2026-06-07
1030Russia2026-05-29
1031Japan2026-05-15
1032Russia2026-05-31
1033Japan2026-05-24
1034Canada2026-05-16
1035Germany2026-06-05
1036Canada2026-05-11
1037Canada2026-05-27
1038Brazil2026-06-07
1039Russia2026-05-16
1040Brazil2026-06-08
1041Russia2026-05-21
1042Brazil2026-06-06
1043Australia2026-05-12
1044Australia2026-05-16
1045Germany2026-06-02
1046Spain2026-06-02
1047India2026-06-02
1048Brazil2026-06-02
1049Germany2026-05-17

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000India2026-06-04
Deepesh Chui1001India2026-05-20
Deepesh Chui1002Russia2026-05-28
Rodrigues Campain1003Australia2026-05-13
Greenwood Bolognia1004Germany2026-06-01
James Butt1005Germany2026-05-24
Julie Stenseth1006Australia2026-05-13
Silvio Slusarski1007United Kingdom2026-06-07
Ricardo Gaucho1008Japan2026-05-24
Jeanfrancois Venere1009France2026-05-10
Salvatore Stockham1010India2026-06-07
Mayumi Kolmetz1011India2026-06-08
Faith Gillian1012United Kingdom2026-05-20
David Darakjy1013Italy2026-05-18
Jones Vocelka1014Brazil2026-06-08
Ivar Paprocki1015India2026-05-13
Munro Ferencz1016Japan2026-05-22
Jennifer Amigon1017Australia2026-05-22
Wickens Nestle1018United Kingdom2026-05-10
Julie Stenseth1019Canada2026-05-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika InouyeAustraliaOnyama Limba NEGOTIATION
Ivar PaprockiIndiaOnyama Limba PROPOSAL
Emily WhobreySpainStephen Shaw RENEWAL
Munro FerenczJapanAmy Elsner UNQUALIFIED
Morrow RutaGermanyAsiya Javayant UNQUALIFIED
David DarakjyItalyIoni Bowcher PROPOSAL
Emily WhobreyJapanAsiya Javayant QUALIFIED
Murillo MaletAustraliaIvan Magalhaes QUALIFIED
Mujtaba NickaGermanyIoni Bowcher PROPOSAL
Nicolas IturbideFranceOnyama Limba RENEWAL
Ashley DoeArgentinaBernardo Dominic NEW
Ashley DoeUnited KingdomAmy Elsner UNQUALIFIED
Jones VocelkaGermanyElwin Sharvill QUALIFIED
Adams MorascaArgentinaElwin Sharvill QUALIFIED
Juan WieserFranceXuxue Feng NEW
Mayumi KolmetzIndiaStephen Shaw NEGOTIATION
Kadeem FlosiCanadaAsiya Javayant PROPOSAL
Stacey MacleadIndiaAmy Elsner UNQUALIFIED
Jeanfrancois VenereIndiaXuxue Feng PROPOSAL
Munro FerenczAustraliaBernardo Dominic QUALIFIED
Leja CaldareraArgentinaBernardo Dominic RENEWAL
Alejandro PerinArgentinaBernardo Dominic NEGOTIATION
Johnson SergiFranceOnyama Limba NEW
Adams MorascaIndiaOnyama Limba PROPOSAL
Adams MorascaItalyBernardo Dominic NEGOTIATION
Tony FollerRussiaAnna Fali PROPOSAL
Aruna FigeroaUnited KingdomIoni Bowcher QUALIFIED
Jefferson SchemmerBrazilAsiya Javayant RENEWAL
Tony FollerItalyIvan Magalhaes UNQUALIFIED
Faith GillianFranceBernardo Dominic RENEWAL
Aika InouyeAustraliaOnyama Limba RENEWAL
Jeanfrancois VenereJapanIvan Magalhaes RENEWAL
Jones VocelkaItalyStephen Shaw QUALIFIED
Juan WieserGermanyOnyama Limba NEW
Kadeem FlosiAustraliaIvan Magalhaes RENEWAL
Kadeem FlosiRussiaStephen Shaw NEW
Juan WieserFranceIoni Bowcher UNQUALIFIED
Jennifer AmigonFranceStephen Shaw RENEWAL
Kadeem FlosiJapanIvan Magalhaes UNQUALIFIED
Kadeem FlosiJapanAnna Fali UNQUALIFIED

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