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
Greenwood BologniaIndiaAmy Elsner NEW
Mayumi KolmetzArgentinaAsiya Javayant PROPOSAL
Leja CaldareraBrazilElwin Sharvill RENEWAL
Sinclair WaycottAustraliaElwin Sharvill RENEWAL
Ricardo GauchoBrazilAsiya Javayant QUALIFIED
Alejandro PerinCanadaAmy Elsner QUALIFIED
Alejandro PerinFranceAnna Fali NEGOTIATION
Munro FerenczIndiaAnna Fali UNQUALIFIED
Francesco ShinkoSpainAmy Elsner QUALIFIED
Nicolas IturbideJapanStephen Shaw PROPOSAL
Stacey MacleadIndiaXuxue Feng RENEWAL
Wickens NestleItalyXuxue Feng QUALIFIED
Tony FollerUnited KingdomBernardo Dominic UNQUALIFIED
Rodrigues CampainGermanyAsiya Javayant PROPOSAL
Nicolas IturbideIndiaAmy Elsner RENEWAL
Emily WhobreyJapanBernardo Dominic NEW
Jeanfrancois VenereRussiaAnna Fali QUALIFIED
Mayumi KolmetzGermanyIvan Magalhaes RENEWAL
Misaki RoysterIndiaOnyama Limba NEGOTIATION
Costa DilliardCanadaElwin Sharvill NEW
Rodrigues CampainRussiaAmy Elsner QUALIFIED
Kaitlin OstroskyAustraliaIoni Bowcher RENEWAL
Leja CaldareraAustraliaStephen Shaw NEGOTIATION
Aruna FigeroaIndiaXuxue Feng NEGOTIATION
Leja CaldareraGermanyIvan Magalhaes PROPOSAL
Costa DilliardRussiaBernardo Dominic NEW
Salvatore StockhamGermanyAsiya Javayant PROPOSAL
James ButtFranceAnna Fali PROPOSAL
Mujtaba NickaRussiaElwin Sharvill UNQUALIFIED
Salvatore StockhamBrazilElwin Sharvill UNQUALIFIED
Nicolas IturbideJapanBernardo Dominic PROPOSAL
Silvio SlusarskiBrazilAsiya Javayant NEGOTIATION
Arvin AlbaresJapanAnna Fali NEW
Kadeem FlosiArgentinaElwin Sharvill RENEWAL
Arvin AlbaresBrazilElwin Sharvill RENEWAL
Smith GlickUnited KingdomIvan Magalhaes PROPOSAL
Greenwood BologniaCanadaBernardo Dominic PROPOSAL
Cody SaylorsRussiaAsiya Javayant QUALIFIED
Cody SaylorsItalyXuxue Feng NEW
Salvatore StockhamCanadaOnyama Limba NEW
Salvatore StockhamRussiaAnna Fali QUALIFIED
Jones VocelkaAustraliaOnyama Limba RENEWAL
David DarakjyBrazilOnyama Limba RENEWAL
Rodrigues CampainFranceAnna Fali RENEWAL
Leon OldroydUnited KingdomBernardo Dominic PROPOSAL
Aika InouyeBrazilAsiya Javayant NEW
Clifford RimAustraliaAsiya Javayant UNQUALIFIED
Juan WieserUnited KingdomBernardo Dominic RENEWAL
Stacey MacleadIndiaAnna Fali NEW
Claire TollnerGermanyElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Sinclair WaycottFranceAmy Elsner RENEWAL
Deepesh ChuiUnited KingdomAsiya Javayant NEW
Kadeem FlosiIndiaElwin Sharvill NEW
James ButtJapanAsiya Javayant RENEWAL
Silvio SlusarskiSpainXuxue Feng RENEWAL
Adams MorascaItalyAsiya Javayant NEW
Jones VocelkaAustraliaElwin Sharvill NEW
Silvio SlusarskiArgentinaXuxue Feng UNQUALIFIED
Aika InouyeItalyOnyama Limba NEW
Francesco ShinkoFranceIoni Bowcher NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoAustralia2026-05-24Chemel, James L Cpa NEGOTIATION8Amy Elsner
1001Cody SaylorsAustralia2026-06-02Commercial Press QUALIFIED41Elwin Sharvill
1002Emily WhobreySpain2026-05-24Dorl, James J Esq NEW79Ioni Bowcher
1003Stacey MacleadJapan2026-05-19Feltz Printing Service RENEWAL28Ivan Magalhaes
1004James ButtItaly2026-05-29Benton, John B Jr QUALIFIED90Elwin Sharvill
1005Maisha RulapaughBrazil2026-05-05Printing Dimensions QUALIFIED33Ivan Magalhaes
1006James ButtJapan2026-05-14Morlong Associates NEGOTIATION28Anna Fali
1007Jefferson SchemmerSpain2026-05-05Chapman, Ross E Esq NEGOTIATION83Ioni Bowcher
1008Leon OldroydBrazil2026-06-01Chapman, Ross E Esq NEW76Anna Fali
1009Ashley DoeAustralia2026-06-02Chemel, James L Cpa UNQUALIFIED95Ioni Bowcher
1010Claire TollnerSpain2026-05-20Buckley Miller Wright NEGOTIATION69Onyama Limba
1011Chavez BriddickAustralia2026-05-24Feltz Printing Service PROPOSAL43Amy Elsner
1012Adams MorascaCanada2026-05-10Chemel, James L Cpa NEW18Onyama Limba
1013Clifford RimRussia2026-05-27Chapman, Ross E Esq PROPOSAL55Ivan Magalhaes
1014Aruna FigeroaCanada2026-05-12Rangoni Of Florence UNQUALIFIED85Onyama Limba
1015Jennifer AmigonItaly2026-05-26King, Christopher A Esq NEGOTIATION65Xuxue Feng
1016Deepesh ChuiUnited Kingdom2026-05-15Chanay, Jeffrey A Esq QUALIFIED91Bernardo Dominic
1017Leja CaldareraBrazil2026-05-30Chapman, Ross E Esq NEW81Anna Fali
1018Alejandro PerinSpain2026-05-24Feltz Printing Service UNQUALIFIED79Amy Elsner
1019Faith GillianItaly2026-05-07Rousseaux, Michael Esq NEGOTIATION23Ivan Magalhaes
1020Kadeem FlosiAustralia2026-05-10Morlong Associates NEGOTIATION63Xuxue Feng
1021Chavez BriddickUnited Kingdom2026-05-28Chanay, Jeffrey A Esq NEGOTIATION29Ioni Bowcher
1022Arvin AlbaresGermany2026-05-22Feltz Printing Service NEGOTIATION62Onyama Limba
1023Claire TollnerSpain2026-05-07Chapman, Ross E Esq RENEWAL35Onyama Limba
1024Adams MorascaRussia2026-05-04Printing Dimensions PROPOSAL95Asiya Javayant
1025Ivar PaprockiIndia2026-05-27Commercial Press NEGOTIATION37Xuxue Feng
1026Isabel BowleyCanada2026-05-14Chapman, Ross E Esq UNQUALIFIED67Onyama Limba
1027Ashley DoeSpain2026-05-08Chanay, Jeffrey A Esq UNQUALIFIED54Ioni Bowcher
1028Morrow RutaRussia2026-05-06King, Christopher A Esq RENEWAL93Stephen Shaw
1029Silvio SlusarskiJapan2026-05-12Feiner Bros NEW53Stephen Shaw
1030Alejandro PerinGermany2026-05-31Buckley Miller Wright NEGOTIATION18Amy Elsner
1031Mayumi KolmetzBrazil2026-05-05Buckley Miller Wright PROPOSAL96Stephen Shaw
1032Mayumi KolmetzSpain2026-05-21Commercial Press NEGOTIATION21Bernardo Dominic
1033Alejandro PerinCanada2026-05-30Chapman, Ross E Esq RENEWAL43Asiya Javayant
1034Jones VocelkaIndia2026-05-26Chemel, James L Cpa RENEWAL67Onyama Limba
1035Deepesh ChuiUnited Kingdom2026-05-27Feiner Bros UNQUALIFIED68Ivan Magalhaes
1036Misaki RoysterBrazil2026-05-09Commercial Press PROPOSAL93Anna Fali
1037Morrow RutaArgentina2026-05-26Truhlar And Truhlar Attys NEW89Amy Elsner
1038Octavia MaletGermany2026-06-01Chanay, Jeffrey A Esq QUALIFIED24Onyama Limba
1039Greenwood BologniaAustralia2026-05-17Chanay, Jeffrey A Esq PROPOSAL40Bernardo Dominic
1040Kaitlin OstroskyAustralia2026-05-18Feiner Bros RENEWAL98Xuxue Feng
1041Greenwood BologniaCanada2026-05-17Rangoni Of Florence QUALIFIED31Elwin Sharvill
1042Clifford RimItaly2026-05-31Morlong Associates RENEWAL98Bernardo Dominic
1043Cody SaylorsItaly2026-05-24Truhlar And Truhlar Attys NEGOTIATION90Stephen Shaw
1044Stacey MacleadSpain2026-05-26Feiner Bros PROPOSAL15Elwin Sharvill
1045Aika InouyeJapan2026-05-07Benton, John B Jr UNQUALIFIED90Stephen Shaw
1046Antonio CaudyBrazil2026-05-16Feiner Bros RENEWAL97Anna Fali
1047Munro FerenczGermany2026-05-22Chanay, Jeffrey A Esq NEW14Bernardo Dominic
1048Aika InouyeAustralia2026-05-10Buckley Miller Wright NEGOTIATION86Bernardo Dominic
1049Maria MarrierItaly2026-05-13Feltz Printing Service PROPOSAL29Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Darci PoquetteGermanyIoni Bowcher NEGOTIATION
Aruna FigeroaBrazilIvan Magalhaes PROPOSAL
Julie StensethAustraliaAmy Elsner QUALIFIED
Arvin AlbaresItalyIoni Bowcher NEGOTIATION
Maria MarrierUnited KingdomBernardo Dominic UNQUALIFIED
Mujtaba NickaFranceAmy Elsner QUALIFIED
Emily WhobreyIndiaBernardo Dominic QUALIFIED
Smith GlickCanadaAmy Elsner NEGOTIATION
Aditya KuskoBrazilAmy Elsner PROPOSAL
Clifford RimAustraliaXuxue Feng NEGOTIATION
Isabel BowleyUnited KingdomIvan Magalhaes QUALIFIED
Aika InouyeArgentinaBernardo Dominic NEW
Silvio SlusarskiUnited KingdomAmy Elsner PROPOSAL
Leja CaldareraCanadaBernardo Dominic UNQUALIFIED
Arvin AlbaresArgentinaAmy Elsner UNQUALIFIED
Smith GlickArgentinaElwin Sharvill UNQUALIFIED
Silvio SlusarskiGermanyAnna Fali PROPOSAL
Izzy GarufiJapanIvan Magalhaes QUALIFIED
Murillo MaletJapanIoni Bowcher PROPOSAL
Deepesh ChuiIndiaElwin Sharvill RENEWAL
Alejandro PerinItalyAsiya Javayant UNQUALIFIED
Stacey MacleadItalyBernardo Dominic UNQUALIFIED
Aditya KuskoItalyXuxue Feng RENEWAL
Nicolas IturbideJapanIvan Magalhaes PROPOSAL
Julie StensethRussiaAsiya Javayant QUALIFIED
Cody SaylorsJapanElwin Sharvill RENEWAL
Aruna FigeroaCanadaAsiya Javayant NEGOTIATION
Aditya KuskoBrazilBernardo Dominic NEGOTIATION
Sinclair WaycottCanadaOnyama Limba UNQUALIFIED
Deepesh ChuiUnited KingdomElwin Sharvill QUALIFIED
Emily WhobreyItalyAmy Elsner QUALIFIED
Aika InouyeBrazilIoni Bowcher RENEWAL
Silvio SlusarskiIndiaBernardo Dominic PROPOSAL
James ButtArgentinaXuxue Feng QUALIFIED
David DarakjyAustraliaElwin Sharvill PROPOSAL
Silvio SlusarskiAustraliaAnna Fali NEGOTIATION
Aika InouyeSpainOnyama Limba PROPOSAL
Kadeem FlosiUnited KingdomAnna Fali QUALIFIED
Deepesh ChuiItalyStephen Shaw PROPOSAL
Smith GlickArgentinaOnyama Limba PROPOSAL
Octavia MaletSpainXuxue Feng RENEWAL
Murillo MaletBrazilStephen Shaw RENEWAL
Kaitlin OstroskySpainXuxue Feng NEGOTIATION
Leon OldroydBrazilAmy Elsner QUALIFIED
Jeanfrancois VenereItalyAnna Fali NEGOTIATION
Kadeem FlosiBrazilXuxue Feng UNQUALIFIED
Emily WhobreyGermanyOnyama Limba NEGOTIATION
Jeanfrancois VenereGermanyXuxue Feng PROPOSAL
Izzy GarufiJapanElwin Sharvill NEGOTIATION
Maria MarrierItalyAmy Elsner PROPOSAL
Frozen Columns
Name
Arvin Albares
Maria Marrier
Ashley Doe
Costa Dilliard
Misaki Royster
Kadeem Flosi
Chavez Briddick
Salvatore Stockham
Chavez Briddick
Jones Vocelka
Leon Oldroyd
Jones Vocelka
Alejandro Perin
Leja Caldarera
Juan Wieser
Alejandro Perin
Stacey Maclead
Greenwood Bolognia
Jeanfrancois Venere
Rodrigues Campain
Alejandro Perin
Cody Saylors
Maria Marrier
Sinclair Waycott
Murillo Malet
Leon Oldroyd
Antonio Caudy
Aruna Figeroa
Arvin Albares
Juan Wieser
Chavez Briddick
Alejandro Perin
Alejandro Perin
Izzy Garufi
Ivar Paprocki
Octavia Malet
Izzy Garufi
Chavez Briddick
Leon Oldroyd
Murillo Malet
Stacey Maclead
Francesco Shinko
Costa Dilliard
Kadeem Flosi
Aditya Kusko
Stacey Maclead
Stacey Maclead
Stacey Maclead
Deepesh Chui
Jones Vocelka
IdCountryDate
1000Brazil2026-05-31
1001Germany2026-05-14
1002Japan2026-05-12
1003United Kingdom2026-05-09
1004United Kingdom2026-05-30
1005Australia2026-05-08
1006United Kingdom2026-05-30
1007Germany2026-05-10
1008Spain2026-05-22
1009Germany2026-05-29
1010Russia2026-05-07
1011Japan2026-05-04
1012Brazil2026-05-18
1013Argentina2026-05-12
1014Germany2026-05-22
1015Germany2026-05-22
1016Brazil2026-06-02
1017Russia2026-05-24
1018Australia2026-05-30
1019Canada2026-05-13
1020India2026-05-08
1021India2026-05-25
1022India2026-05-04
1023Italy2026-05-10
1024Russia2026-05-17
1025Japan2026-05-18
1026Italy2026-05-06
1027Spain2026-05-10
1028Argentina2026-05-15
1029France2026-06-01
1030Japan2026-06-02
1031Brazil2026-05-31
1032India2026-05-11
1033Italy2026-05-24
1034France2026-05-24
1035France2026-05-10
1036India2026-05-12
1037United Kingdom2026-05-26
1038Brazil2026-05-13
1039Argentina2026-05-11
1040Japan2026-05-31
1041Germany2026-05-11
1042Germany2026-05-06
1043United Kingdom2026-05-14
1044Spain2026-05-22
1045Germany2026-05-14
1046Italy2026-05-10
1047Argentina2026-06-02
1048France2026-06-02
1049Japan2026-05-19

On-Demand Data

NameIdCountryDate
Julie Stenseth1000India2026-05-28
Nicolas Iturbide1001United Kingdom2026-05-04
Aika Inouye1002Russia2026-05-13
Chavez Briddick1003United Kingdom2026-05-06
Kadeem Flosi1004Canada2026-05-17
Mujtaba Nicka1005United Kingdom2026-05-18
Chavez Briddick1006Germany2026-05-21
Emily Whobrey1007Germany2026-05-06
Jones Vocelka1008Canada2026-05-11
Jeanfrancois Venere1009India2026-05-19
Izzy Garufi1010Canada2026-05-12
Costa Dilliard1011Australia2026-05-12
James Butt1012India2026-05-09
Jones Vocelka1013Argentina2026-05-21
Mujtaba Nicka1014Italy2026-05-17
Claire Tollner1015Spain2026-05-05
Jones Vocelka1016Argentina2026-05-09
Leja Caldarera1017Argentina2026-05-08
Nicolas Iturbide1018United Kingdom2026-05-17
Stacey Maclead1019Australia2026-05-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan WieserGermanyAnna Fali PROPOSAL
Johnson SergiItalyStephen Shaw QUALIFIED
Darci PoquetteSpainElwin Sharvill NEGOTIATION
Francesco ShinkoRussiaAmy Elsner PROPOSAL
Aditya KuskoIndiaAsiya Javayant NEGOTIATION
Kaitlin OstroskyArgentinaAmy Elsner PROPOSAL
Murillo MaletRussiaOnyama Limba UNQUALIFIED
Kadeem FlosiRussiaBernardo Dominic PROPOSAL
Juan WieserFranceXuxue Feng QUALIFIED
Stacey MacleadBrazilXuxue Feng UNQUALIFIED
Greenwood BologniaBrazilAmy Elsner NEW
Leon OldroydArgentinaBernardo Dominic NEW
Jennifer AmigonAustraliaXuxue Feng NEW
Arvin AlbaresSpainElwin Sharvill NEW
Misaki RoysterAustraliaBernardo Dominic QUALIFIED
Aika InouyeFranceIoni Bowcher RENEWAL
Maria MarrierJapanOnyama Limba NEGOTIATION
Ivar PaprockiBrazilAnna Fali RENEWAL
Maisha RulapaughJapanIvan Magalhaes PROPOSAL
Murillo MaletItalyIoni Bowcher PROPOSAL
Claire TollnerArgentinaElwin Sharvill UNQUALIFIED
Mujtaba NickaSpainBernardo Dominic NEGOTIATION
Clifford RimArgentinaAsiya Javayant UNQUALIFIED
Adams MorascaUnited KingdomStephen Shaw PROPOSAL
Ashley DoeIndiaIoni Bowcher NEW
Ivar PaprockiSpainBernardo Dominic RENEWAL
Chavez BriddickJapanElwin Sharvill RENEWAL
Wickens NestleCanadaStephen Shaw PROPOSAL
Kadeem FlosiCanadaStephen Shaw PROPOSAL
Johnson SergiBrazilIoni Bowcher NEGOTIATION
Ashley DoeCanadaAsiya Javayant PROPOSAL
Ivar PaprockiBrazilStephen Shaw NEGOTIATION
Mayumi KolmetzItalyOnyama Limba UNQUALIFIED
Wickens NestleArgentinaIvan Magalhaes NEW
Munro FerenczArgentinaOnyama Limba NEGOTIATION
Jeanfrancois VenereJapanIoni Bowcher RENEWAL
Mayumi KolmetzIndiaStephen Shaw QUALIFIED
Ashley DoeCanadaXuxue Feng PROPOSAL
Cody SaylorsBrazilElwin Sharvill NEGOTIATION
Francesco ShinkoGermanyBernardo 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>