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
David DarakjyAustraliaStephen Shaw RENEWAL
Ricardo GauchoUnited KingdomIoni Bowcher NEW
Misaki RoysterUnited KingdomXuxue Feng NEW
Ivar PaprockiItalyAsiya Javayant QUALIFIED
Jones VocelkaFranceXuxue Feng UNQUALIFIED
Claire TollnerIndiaIvan Magalhaes NEGOTIATION
Maisha RulapaughUnited KingdomIvan Magalhaes NEW
Morrow RutaUnited KingdomBernardo Dominic UNQUALIFIED
Murillo MaletArgentinaOnyama Limba NEGOTIATION
James ButtItalyIvan Magalhaes NEGOTIATION
Costa DilliardCanadaAmy Elsner NEGOTIATION
James ButtSpainStephen Shaw NEGOTIATION
Rodrigues CampainJapanStephen Shaw NEW
James ButtArgentinaAmy Elsner UNQUALIFIED
Costa DilliardBrazilXuxue Feng NEGOTIATION
Claire TollnerBrazilAmy Elsner QUALIFIED
Ashley DoeUnited KingdomOnyama Limba PROPOSAL
Jeanfrancois VenereArgentinaAmy Elsner RENEWAL
Deepesh ChuiArgentinaIvan Magalhaes NEGOTIATION
Greenwood BologniaSpainOnyama Limba NEW
Cody SaylorsRussiaIoni Bowcher NEGOTIATION
Mujtaba NickaCanadaOnyama Limba QUALIFIED
Aditya KuskoIndiaElwin Sharvill PROPOSAL
Isabel BowleyCanadaAsiya Javayant UNQUALIFIED
Rodrigues CampainUnited KingdomXuxue Feng PROPOSAL
Faith GillianJapanXuxue Feng UNQUALIFIED
Clifford RimBrazilStephen Shaw UNQUALIFIED
Nicolas IturbideAustraliaIoni Bowcher NEW
Mujtaba NickaJapanOnyama Limba UNQUALIFIED
Costa DilliardArgentinaIvan Magalhaes NEGOTIATION
Adams MorascaRussiaAsiya Javayant PROPOSAL
Maisha RulapaughIndiaXuxue Feng NEW
Munro FerenczIndiaStephen Shaw NEW
Alejandro PerinSpainElwin Sharvill NEW
Rodrigues CampainAustraliaAsiya Javayant NEGOTIATION
Aditya KuskoFranceXuxue Feng NEGOTIATION
Claire TollnerFranceXuxue Feng NEGOTIATION
Maisha RulapaughJapanBernardo Dominic PROPOSAL
Juan WieserCanadaBernardo Dominic QUALIFIED
Aika InouyeItalyOnyama Limba NEW
Julie StensethGermanyIvan Magalhaes QUALIFIED
Francesco ShinkoJapanIvan Magalhaes UNQUALIFIED
Murillo MaletCanadaXuxue Feng NEGOTIATION
Jennifer AmigonAustraliaOnyama Limba RENEWAL
Chavez BriddickAustraliaAmy Elsner NEGOTIATION
Cody SaylorsIndiaBernardo Dominic NEGOTIATION
Munro FerenczGermanyXuxue Feng PROPOSAL
Francesco ShinkoAustraliaElwin Sharvill NEW
Murillo MaletGermanyBernardo Dominic NEW
Jones VocelkaGermanyStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Jones VocelkaRussiaBernardo Dominic PROPOSAL
Darci PoquetteGermanyBernardo Dominic QUALIFIED
Morrow RutaGermanyAmy Elsner NEGOTIATION
Jefferson SchemmerSpainIvan Magalhaes PROPOSAL
Leon OldroydUnited KingdomOnyama Limba RENEWAL
Maisha RulapaughArgentinaStephen Shaw RENEWAL
Ivar PaprockiCanadaOnyama Limba RENEWAL
David DarakjyArgentinaIoni Bowcher NEGOTIATION
Clifford RimUnited KingdomElwin Sharvill NEW
Leon OldroydRussiaAsiya Javayant RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin AlbaresRussia2025-06-23Benton, John B Jr NEW38Anna Fali
1001Ricardo GauchoIndia2025-06-01Feiner Bros PROPOSAL23Ivan Magalhaes
1002Ashley DoeRussia2025-06-20Buckley Miller Wright PROPOSAL6Stephen Shaw
1003Morrow RutaJapan2025-06-03Printing Dimensions RENEWAL52Elwin Sharvill
1004Jeanfrancois VenereSpain2025-06-10King, Christopher A Esq QUALIFIED58Ioni Bowcher
1005David DarakjyArgentina2025-06-07Rangoni Of Florence NEGOTIATION62Amy Elsner
1006Maria MarrierUnited Kingdom2025-06-14Chanay, Jeffrey A Esq NEW80Elwin Sharvill
1007Kaitlin OstroskyArgentina2025-06-15Rousseaux, Michael Esq PROPOSAL66Ioni Bowcher
1008Aruna FigeroaIndia2025-06-13Commercial Press UNQUALIFIED19Elwin Sharvill
1009James ButtArgentina2025-06-23Chemel, James L Cpa RENEWAL15Amy Elsner
1010Cody SaylorsJapan2025-06-10Dorl, James J Esq NEW67Ioni Bowcher
1011Emily WhobreyJapan2025-06-26Chapman, Ross E Esq UNQUALIFIED6Elwin Sharvill
1012Kadeem FlosiJapan2025-06-19Feiner Bros QUALIFIED46Stephen Shaw
1013Mayumi KolmetzSpain2025-06-30Chapman, Ross E Esq NEGOTIATION75Ivan Magalhaes
1014Jefferson SchemmerIndia2025-06-14Chemel, James L Cpa QUALIFIED73Ivan Magalhaes
1015Misaki RoysterItaly2025-06-06Commercial Press QUALIFIED91Anna Fali
1016Antonio CaudyItaly2025-06-22Feltz Printing Service RENEWAL20Stephen Shaw
1017Sinclair WaycottSpain2025-06-02Chanay, Jeffrey A Esq NEW7Amy Elsner
1018Arvin AlbaresCanada2025-06-27Morlong Associates UNQUALIFIED52Ioni Bowcher
1019Munro FerenczRussia2025-06-02Commercial Press NEGOTIATION62Bernardo Dominic
1020Alejandro PerinFrance2025-06-14Dorl, James J Esq UNQUALIFIED97Ioni Bowcher
1021Nicolas IturbideItaly2025-06-13Dorl, James J Esq PROPOSAL46Xuxue Feng
1022Silvio SlusarskiGermany2025-06-06Chapman, Ross E Esq NEGOTIATION42Amy Elsner
1023Smith GlickIndia2025-06-27Chanay, Jeffrey A Esq UNQUALIFIED83Ivan Magalhaes
1024David DarakjyIndia2025-06-27King, Christopher A Esq QUALIFIED15Elwin Sharvill
1025Faith GillianAustralia2025-06-16Dorl, James J Esq RENEWAL38Amy Elsner
1026Aditya KuskoGermany2025-06-30Rousseaux, Michael Esq RENEWAL18Anna Fali
1027Aruna FigeroaFrance2025-06-24Morlong Associates UNQUALIFIED70Ivan Magalhaes
1028Isabel BowleyJapan2025-06-24Rangoni Of Florence NEW38Asiya Javayant
1029Emily WhobreyGermany2025-06-18Dorl, James J Esq NEGOTIATION37Stephen Shaw
1030Isabel BowleyAustralia2025-06-20Feiner Bros NEW10Ioni Bowcher
1031Clifford RimArgentina2025-06-15Buckley Miller Wright RENEWAL4Elwin Sharvill
1032Stacey MacleadJapan2025-06-01Rangoni Of Florence UNQUALIFIED2Bernardo Dominic
1033Jones VocelkaCanada2025-06-19Printing Dimensions RENEWAL31Amy Elsner
1034Sinclair WaycottFrance2025-06-02Rousseaux, Michael Esq RENEWAL40Stephen Shaw
1035Murillo MaletUnited Kingdom2025-06-24Rangoni Of Florence NEW72Onyama Limba
1036Isabel BowleyJapan2025-06-15Printing Dimensions RENEWAL38Elwin Sharvill
1037Maisha RulapaughIndia2025-06-19Truhlar And Truhlar Attys RENEWAL50Ivan Magalhaes
1038Rodrigues CampainItaly2025-06-21Dorl, James J Esq UNQUALIFIED17Asiya Javayant
1039Izzy GarufiGermany2025-06-20Chanay, Jeffrey A Esq NEGOTIATION44Amy Elsner
1040Smith GlickFrance2025-06-04Chanay, Jeffrey A Esq UNQUALIFIED8Anna Fali
1041Faith GillianGermany2025-06-26Commercial Press NEW87Elwin Sharvill
1042Juan WieserUnited Kingdom2025-06-01Chapman, Ross E Esq PROPOSAL96Elwin Sharvill
1043Antonio CaudyFrance2025-06-13King, Christopher A Esq PROPOSAL81Bernardo Dominic
1044Jones VocelkaBrazil2025-06-15King, Christopher A Esq NEW14Ioni Bowcher
1045Rodrigues CampainItaly2025-06-30Chanay, Jeffrey A Esq QUALIFIED8Elwin Sharvill
1046Clifford RimItaly2025-06-01Rousseaux, Michael Esq RENEWAL94Onyama Limba
1047Julie StensethSpain2025-06-04Benton, John B Jr PROPOSAL70Stephen Shaw
1048Arvin AlbaresJapan2025-06-22Chemel, James L Cpa RENEWAL81Amy Elsner
1049Izzy GarufiUnited Kingdom2025-06-25Chemel, James L Cpa PROPOSAL96Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierIndiaBernardo Dominic PROPOSAL
Maria MarrierBrazilIvan Magalhaes RENEWAL
Aditya KuskoFranceElwin Sharvill NEW
Chavez BriddickRussiaBernardo Dominic RENEWAL
Adams MorascaSpainBernardo Dominic UNQUALIFIED
Stacey MacleadBrazilElwin Sharvill UNQUALIFIED
Aruna FigeroaCanadaIvan Magalhaes QUALIFIED
Nicolas IturbideCanadaAmy Elsner QUALIFIED
Silvio SlusarskiRussiaXuxue Feng UNQUALIFIED
Adams MorascaSpainOnyama Limba PROPOSAL
Wickens NestleBrazilStephen Shaw UNQUALIFIED
Jeanfrancois VenereIndiaAnna Fali RENEWAL
Silvio SlusarskiJapanAsiya Javayant UNQUALIFIED
Jefferson SchemmerItalyXuxue Feng QUALIFIED
Aika InouyeJapanXuxue Feng QUALIFIED
Ivar PaprockiCanadaAsiya Javayant NEW
Antonio CaudyCanadaStephen Shaw NEGOTIATION
Smith GlickFranceXuxue Feng PROPOSAL
Jones VocelkaCanadaBernardo Dominic NEGOTIATION
Ashley DoeItalyElwin Sharvill RENEWAL
Ricardo GauchoIndiaElwin Sharvill NEGOTIATION
Johnson SergiUnited KingdomElwin Sharvill NEW
Cody SaylorsCanadaAnna Fali QUALIFIED
Arvin AlbaresSpainStephen Shaw QUALIFIED
Leon OldroydJapanAnna Fali QUALIFIED
David DarakjyFranceAmy Elsner RENEWAL
Ashley DoeFranceAnna Fali UNQUALIFIED
Wickens NestleAustraliaXuxue Feng NEW
Smith GlickUnited KingdomBernardo Dominic QUALIFIED
David DarakjyRussiaIvan Magalhaes PROPOSAL
Arvin AlbaresJapanXuxue Feng NEGOTIATION
Munro FerenczGermanyAmy Elsner NEGOTIATION
Jeanfrancois VenereSpainBernardo Dominic PROPOSAL
Jeanfrancois VenereRussiaStephen Shaw RENEWAL
Jefferson SchemmerCanadaAmy Elsner NEW
Costa DilliardUnited KingdomOnyama Limba UNQUALIFIED
Claire TollnerRussiaIvan Magalhaes RENEWAL
Costa DilliardRussiaIoni Bowcher NEW
Julie StensethBrazilBernardo Dominic PROPOSAL
Jennifer AmigonRussiaAmy Elsner RENEWAL
David DarakjyBrazilElwin Sharvill PROPOSAL
Mayumi KolmetzAustraliaBernardo Dominic RENEWAL
Mayumi KolmetzUnited KingdomIvan Magalhaes PROPOSAL
Costa DilliardSpainIvan Magalhaes RENEWAL
Jeanfrancois VenereIndiaStephen Shaw QUALIFIED
Faith GillianItalyAmy Elsner NEW
Salvatore StockhamUnited KingdomStephen Shaw NEW
Nicolas IturbideItalyStephen Shaw NEGOTIATION
Murillo MaletCanadaAnna Fali PROPOSAL
Rodrigues CampainBrazilBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Smith Glick
Alejandro Perin
Smith Glick
Salvatore Stockham
Alejandro Perin
Maisha Rulapaugh
Faith Gillian
Leon Oldroyd
Ivar Paprocki
Mayumi Kolmetz
Leja Caldarera
Antonio Caudy
Emily Whobrey
Ricardo Gaucho
Izzy Garufi
Claire Tollner
Sinclair Waycott
Isabel Bowley
Maisha Rulapaugh
Francesco Shinko
Salvatore Stockham
Isabel Bowley
Kaitlin Ostrosky
Arvin Albares
Mayumi Kolmetz
Munro Ferencz
Jefferson Schemmer
Ivar Paprocki
Alejandro Perin
Rodrigues Campain
Alejandro Perin
Misaki Royster
Claire Tollner
Maria Marrier
Aika Inouye
Smith Glick
Julie Stenseth
David Darakjy
Leon Oldroyd
Jones Vocelka
Misaki Royster
Arvin Albares
Aruna Figeroa
Morrow Ruta
Francesco Shinko
Jones Vocelka
Jefferson Schemmer
Juan Wieser
Isabel Bowley
Ivar Paprocki
IdCountryDate
1000Russia2025-06-28
1001Japan2025-06-20
1002Spain2025-06-18
1003Spain2025-06-30
1004India2025-06-26
1005Canada2025-06-19
1006Japan2025-06-02
1007Australia2025-06-01
1008Brazil2025-06-21
1009Brazil2025-06-03
1010India2025-06-06
1011Australia2025-06-30
1012France2025-06-22
1013Spain2025-06-17
1014France2025-06-14
1015Australia2025-06-10
1016Japan2025-06-15
1017Argentina2025-06-06
1018Germany2025-06-29
1019Germany2025-06-13
1020Germany2025-06-20
1021Argentina2025-06-09
1022Brazil2025-06-19
1023Australia2025-06-23
1024Germany2025-06-26
1025Japan2025-06-17
1026France2025-06-06
1027Spain2025-06-05
1028Italy2025-06-21
1029United Kingdom2025-06-16
1030Argentina2025-06-09
1031Russia2025-06-22
1032United Kingdom2025-06-11
1033France2025-06-19
1034Spain2025-06-28
1035India2025-06-08
1036Russia2025-06-05
1037Brazil2025-06-16
1038Italy2025-06-25
1039Canada2025-06-16
1040Italy2025-06-19
1041France2025-06-20
1042France2025-06-03
1043United Kingdom2025-06-19
1044Japan2025-06-13
1045Japan2025-06-23
1046Japan2025-06-09
1047Canada2025-06-19
1048Brazil2025-06-22
1049Spain2025-06-24

On-Demand Data

NameIdCountryDate
Antonio Caudy1000Argentina2025-06-16
Munro Ferencz1001Italy2025-06-11
Johnson Sergi1002India2025-06-08
Jeanfrancois Venere1003France2025-06-25
Aika Inouye1004Italy2025-06-30
Jennifer Amigon1005Japan2025-06-11
Aditya Kusko1006Australia2025-06-18
Jeanfrancois Venere1007Australia2025-06-04
Greenwood Bolognia1008Spain2025-06-13
Octavia Malet1009France2025-06-14
Stacey Maclead1010Russia2025-06-04
Adams Morasca1011Brazil2025-06-16
Greenwood Bolognia1012United Kingdom2025-06-16
Ashley Doe1013Brazil2025-06-15
Deepesh Chui1014France2025-06-12
Stacey Maclead1015Brazil2025-06-24
Misaki Royster1016India2025-06-01
Aditya Kusko1017Japan2025-06-08
Aruna Figeroa1018Canada2025-06-13
Silvio Slusarski1019United Kingdom2025-06-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey MacleadUnited KingdomAsiya Javayant NEGOTIATION
Ricardo GauchoFranceIvan Magalhaes RENEWAL
David DarakjyBrazilBernardo Dominic NEGOTIATION
Julie StensethArgentinaIoni Bowcher NEGOTIATION
James ButtSpainElwin Sharvill NEGOTIATION
Greenwood BologniaBrazilElwin Sharvill UNQUALIFIED
Johnson SergiCanadaAsiya Javayant UNQUALIFIED
Salvatore StockhamCanadaIoni Bowcher PROPOSAL
Juan WieserSpainOnyama Limba UNQUALIFIED
Leon OldroydIndiaXuxue Feng RENEWAL
Murillo MaletGermanyAnna Fali UNQUALIFIED
Chavez BriddickUnited KingdomOnyama Limba RENEWAL
Nicolas IturbideAustraliaIvan Magalhaes NEW
Leja CaldareraSpainAmy Elsner PROPOSAL
Isabel BowleyIndiaXuxue Feng UNQUALIFIED
Jennifer AmigonRussiaOnyama Limba PROPOSAL
Murillo MaletUnited KingdomXuxue Feng RENEWAL
Maisha RulapaughBrazilElwin Sharvill PROPOSAL
Rodrigues CampainGermanyStephen Shaw NEGOTIATION
Aruna FigeroaIndiaAmy Elsner PROPOSAL
Ivar PaprockiCanadaElwin Sharvill NEW
Ivar PaprockiIndiaXuxue Feng QUALIFIED
Kaitlin OstroskyIndiaAsiya Javayant UNQUALIFIED
Aika InouyeSpainOnyama Limba NEGOTIATION
Kadeem FlosiAustraliaIvan Magalhaes NEGOTIATION
Maisha RulapaughBrazilAnna Fali NEGOTIATION
Emily WhobreyJapanAmy Elsner NEW
Stacey MacleadUnited KingdomStephen Shaw QUALIFIED
Munro FerenczItalyAsiya Javayant RENEWAL
Sinclair WaycottSpainOnyama Limba NEGOTIATION
Costa DilliardAustraliaIvan Magalhaes QUALIFIED
Morrow RutaItalyXuxue Feng NEGOTIATION
Stacey MacleadCanadaElwin Sharvill UNQUALIFIED
Octavia MaletArgentinaAnna Fali UNQUALIFIED
Jones VocelkaSpainElwin Sharvill QUALIFIED
Smith GlickUnited KingdomXuxue Feng RENEWAL
Isabel BowleyBrazilAmy Elsner NEW
Munro FerenczJapanAmy Elsner RENEWAL
Leja CaldareraJapanAmy Elsner NEGOTIATION
Izzy GarufiUnited KingdomXuxue Feng 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>