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 BologniaSpainOnyama Limba RENEWAL
Ashley DoeAustraliaBernardo Dominic UNQUALIFIED
Sinclair WaycottRussiaIvan Magalhaes PROPOSAL
James ButtRussiaXuxue Feng UNQUALIFIED
Salvatore StockhamArgentinaOnyama Limba QUALIFIED
Jones VocelkaBrazilIvan Magalhaes QUALIFIED
Kadeem FlosiBrazilIvan Magalhaes QUALIFIED
Arvin AlbaresAustraliaOnyama Limba UNQUALIFIED
Nicolas IturbideBrazilAsiya Javayant RENEWAL
Misaki RoysterIndiaAsiya Javayant UNQUALIFIED
Kadeem FlosiUnited KingdomElwin Sharvill QUALIFIED
Octavia MaletAustraliaOnyama Limba NEGOTIATION
Jennifer AmigonJapanAsiya Javayant NEW
David DarakjyBrazilElwin Sharvill UNQUALIFIED
Cody SaylorsJapanAsiya Javayant QUALIFIED
Juan WieserUnited KingdomAsiya Javayant QUALIFIED
Misaki RoysterCanadaElwin Sharvill UNQUALIFIED
Faith GillianCanadaBernardo Dominic NEGOTIATION
Deepesh ChuiBrazilStephen Shaw QUALIFIED
Sinclair WaycottArgentinaBernardo Dominic UNQUALIFIED
Salvatore StockhamGermanyElwin Sharvill PROPOSAL
Juan WieserFranceOnyama Limba NEW
Jefferson SchemmerCanadaElwin Sharvill RENEWAL
Jefferson SchemmerUnited KingdomXuxue Feng PROPOSAL
Leja CaldareraRussiaXuxue Feng PROPOSAL
Rodrigues CampainSpainBernardo Dominic NEGOTIATION
Chavez BriddickArgentinaXuxue Feng RENEWAL
Octavia MaletItalyAmy Elsner RENEWAL
Murillo MaletRussiaXuxue Feng RENEWAL
Leon OldroydUnited KingdomBernardo Dominic NEW
Misaki RoysterFranceOnyama Limba RENEWAL
Faith GillianGermanyElwin Sharvill UNQUALIFIED
Greenwood BologniaCanadaIvan Magalhaes RENEWAL
Claire TollnerRussiaXuxue Feng RENEWAL
Alejandro PerinCanadaAsiya Javayant RENEWAL
Francesco ShinkoFranceAmy Elsner RENEWAL
Mujtaba NickaItalyXuxue Feng PROPOSAL
Ashley DoeJapanBernardo Dominic NEGOTIATION
Wickens NestleUnited KingdomIoni Bowcher NEGOTIATION
Leja CaldareraBrazilStephen Shaw RENEWAL
Aruna FigeroaFranceAmy Elsner QUALIFIED
Francesco ShinkoItalyBernardo Dominic NEW
Jeanfrancois VenereCanadaElwin Sharvill RENEWAL
Misaki RoysterItalyIvan Magalhaes NEW
Cody SaylorsCanadaIoni Bowcher PROPOSAL
Kaitlin OstroskyAustraliaAnna Fali PROPOSAL
Nicolas IturbideGermanyIvan Magalhaes PROPOSAL
Costa DilliardBrazilElwin Sharvill QUALIFIED
Mujtaba NickaFranceIoni Bowcher RENEWAL
Nicolas IturbideBrazilXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Salvatore StockhamAustraliaAnna Fali NEW
Mujtaba NickaRussiaXuxue Feng NEGOTIATION
Aditya KuskoCanadaStephen Shaw QUALIFIED
Clifford RimJapanXuxue Feng NEGOTIATION
Ricardo GauchoRussiaStephen Shaw NEGOTIATION
Antonio CaudyIndiaBernardo Dominic QUALIFIED
Mayumi KolmetzRussiaBernardo Dominic NEW
Cody SaylorsUnited KingdomXuxue Feng NEW
Clifford RimItalyElwin Sharvill QUALIFIED
Stacey MacleadRussiaStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan WieserItaly2026-04-04Rangoni Of Florence PROPOSAL6Elwin Sharvill
1001Maria MarrierJapan2026-03-30Feltz Printing Service NEW38Ivan Magalhaes
1002Smith GlickArgentina2026-03-31Chanay, Jeffrey A Esq PROPOSAL95Asiya Javayant
1003Claire TollnerArgentina2026-04-01Commercial Press UNQUALIFIED66Anna Fali
1004Johnson SergiJapan2026-04-02Chapman, Ross E Esq QUALIFIED68Xuxue Feng
1005Faith GillianBrazil2026-04-15Printing Dimensions QUALIFIED13Anna Fali
1006Deepesh ChuiRussia2026-03-31Buckley Miller Wright QUALIFIED43Amy Elsner
1007Misaki RoysterRussia2026-04-02Buckley Miller Wright PROPOSAL19Bernardo Dominic
1008Juan WieserArgentina2026-04-16Printing Dimensions NEW12Amy Elsner
1009Ricardo GauchoItaly2026-03-30Feiner Bros RENEWAL89Onyama Limba
1010Deepesh ChuiUnited Kingdom2026-04-15Rangoni Of Florence PROPOSAL98Ivan Magalhaes
1011Murillo MaletFrance2026-04-02Rangoni Of Florence NEGOTIATION43Ioni Bowcher
1012Julie StensethFrance2026-03-24Rangoni Of Florence UNQUALIFIED37Stephen Shaw
1013Nicolas IturbideAustralia2026-04-01Buckley Miller Wright NEW53Xuxue Feng
1014Alejandro PerinRussia2026-04-06Rangoni Of Florence PROPOSAL68Anna Fali
1015Maria MarrierUnited Kingdom2026-04-09Rangoni Of Florence UNQUALIFIED21Elwin Sharvill
1016Arvin AlbaresAustralia2026-03-24Dorl, James J Esq NEW21Asiya Javayant
1017Stacey MacleadIndia2026-03-28Commercial Press QUALIFIED13Asiya Javayant
1018Leja CaldareraItaly2026-04-13Rousseaux, Michael Esq NEW0Anna Fali
1019Salvatore StockhamUnited Kingdom2026-04-21King, Christopher A Esq NEW29Onyama Limba
1020Francesco ShinkoGermany2026-04-07Rangoni Of Florence RENEWAL27Xuxue Feng
1021Aika InouyeGermany2026-04-16Benton, John B Jr NEW6Ioni Bowcher
1022Rodrigues CampainArgentina2026-03-26Dorl, James J Esq NEW39Xuxue Feng
1023Aditya KuskoBrazil2026-04-06Dorl, James J Esq NEGOTIATION70Onyama Limba
1024Arvin AlbaresUnited Kingdom2026-04-18Benton, John B Jr NEGOTIATION46Bernardo Dominic
1025Emily WhobreyIndia2026-04-09Buckley Miller Wright NEW20Amy Elsner
1026Jeanfrancois VenereItaly2026-04-02Morlong Associates QUALIFIED40Anna Fali
1027Jefferson SchemmerRussia2026-04-22Commercial Press UNQUALIFIED58Elwin Sharvill
1028Darci PoquetteFrance2026-04-21Chanay, Jeffrey A Esq NEW42Asiya Javayant
1029Rodrigues CampainGermany2026-04-20Chemel, James L Cpa RENEWAL69Anna Fali
1030Isabel BowleyCanada2026-04-21King, Christopher A Esq PROPOSAL64Ioni Bowcher
1031Aika InouyeArgentina2026-03-26Rousseaux, Michael Esq UNQUALIFIED21Onyama Limba
1032Jones VocelkaSpain2026-04-09King, Christopher A Esq NEW19Bernardo Dominic
1033Jennifer AmigonCanada2026-04-12Chanay, Jeffrey A Esq QUALIFIED15Ioni Bowcher
1034Alejandro PerinAustralia2026-04-06King, Christopher A Esq RENEWAL63Elwin Sharvill
1035Nicolas IturbideGermany2026-04-11Rangoni Of Florence PROPOSAL70Onyama Limba
1036Jennifer AmigonUnited Kingdom2026-03-30Dorl, James J Esq UNQUALIFIED71Anna Fali
1037Jeanfrancois VenereFrance2026-04-10Chapman, Ross E Esq QUALIFIED96Elwin Sharvill
1038Silvio SlusarskiBrazil2026-04-09Morlong Associates RENEWAL11Onyama Limba
1039Adams MorascaGermany2026-03-26Chemel, James L Cpa PROPOSAL59Amy Elsner
1040Octavia MaletAustralia2026-04-02Printing Dimensions UNQUALIFIED31Amy Elsner
1041Jefferson SchemmerGermany2026-04-15Chanay, Jeffrey A Esq RENEWAL7Elwin Sharvill
1042Isabel BowleyJapan2026-04-20Chanay, Jeffrey A Esq PROPOSAL91Elwin Sharvill
1043Costa DilliardRussia2026-03-30Morlong Associates NEGOTIATION74Elwin Sharvill
1044Smith GlickSpain2026-04-11Feltz Printing Service PROPOSAL60Stephen Shaw
1045Izzy GarufiArgentina2026-03-25Rousseaux, Michael Esq QUALIFIED54Asiya Javayant
1046Deepesh ChuiUnited Kingdom2026-03-25Chemel, James L Cpa NEGOTIATION82Ioni Bowcher
1047Maria MarrierRussia2026-04-10Dorl, James J Esq QUALIFIED73Bernardo Dominic
1048Ashley DoeFrance2026-04-05Rousseaux, Michael Esq QUALIFIED41Elwin Sharvill
1049Nicolas IturbideRussia2026-03-24Chanay, Jeffrey A Esq NEGOTIATION31Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Sinclair WaycottItalyIvan Magalhaes NEW
Leja CaldareraGermanyAnna Fali RENEWAL
Johnson SergiBrazilBernardo Dominic UNQUALIFIED
Chavez BriddickJapanAmy Elsner QUALIFIED
Darci PoquetteJapanIoni Bowcher PROPOSAL
Johnson SergiSpainOnyama Limba PROPOSAL
Salvatore StockhamSpainOnyama Limba QUALIFIED
Maria MarrierRussiaIoni Bowcher PROPOSAL
Antonio CaudyIndiaBernardo Dominic UNQUALIFIED
Emily WhobreyBrazilStephen Shaw UNQUALIFIED
Deepesh ChuiItalyAsiya Javayant NEGOTIATION
David DarakjyFranceXuxue Feng NEW
Smith GlickCanadaElwin Sharvill NEGOTIATION
Maisha RulapaughUnited KingdomXuxue Feng UNQUALIFIED
Kadeem FlosiItalyAsiya Javayant UNQUALIFIED
Chavez BriddickRussiaXuxue Feng NEGOTIATION
Mayumi KolmetzUnited KingdomElwin Sharvill NEW
Jennifer AmigonRussiaAsiya Javayant PROPOSAL
Antonio CaudyGermanyStephen Shaw NEGOTIATION
Chavez BriddickGermanyStephen Shaw RENEWAL
Misaki RoysterIndiaStephen Shaw QUALIFIED
Jones VocelkaItalyElwin Sharvill NEW
Jones VocelkaBrazilElwin Sharvill QUALIFIED
Izzy GarufiBrazilXuxue Feng RENEWAL
Maria MarrierCanadaAnna Fali NEW
Deepesh ChuiRussiaAsiya Javayant RENEWAL
Aika InouyeItalyAsiya Javayant RENEWAL
Wickens NestleBrazilAnna Fali PROPOSAL
Adams MorascaRussiaAnna Fali QUALIFIED
Ricardo GauchoAustraliaAmy Elsner NEGOTIATION
Deepesh ChuiAustraliaAnna Fali NEGOTIATION
Jones VocelkaFranceStephen Shaw PROPOSAL
James ButtItalyElwin Sharvill PROPOSAL
Salvatore StockhamIndiaBernardo Dominic QUALIFIED
Jeanfrancois VenereJapanAsiya Javayant PROPOSAL
Antonio CaudyAustraliaIvan Magalhaes NEW
Stacey MacleadIndiaOnyama Limba UNQUALIFIED
Maria MarrierBrazilAmy Elsner NEGOTIATION
Cody SaylorsFranceElwin Sharvill UNQUALIFIED
Mujtaba NickaBrazilElwin Sharvill QUALIFIED
Francesco ShinkoBrazilAmy Elsner RENEWAL
Clifford RimJapanAsiya Javayant QUALIFIED
Ricardo GauchoUnited KingdomIvan Magalhaes PROPOSAL
Johnson SergiAustraliaAsiya Javayant NEW
Mujtaba NickaFranceIoni Bowcher NEW
Greenwood BologniaSpainXuxue Feng RENEWAL
Jennifer AmigonGermanyAnna Fali RENEWAL
Aika InouyeGermanyIvan Magalhaes UNQUALIFIED
Izzy GarufiIndiaXuxue Feng RENEWAL
Sinclair WaycottIndiaAmy Elsner RENEWAL
Frozen Columns
Name
Silvio Slusarski
Jones Vocelka
Adams Morasca
Francesco Shinko
Kaitlin Ostrosky
Murillo Malet
Juan Wieser
Smith Glick
Isabel Bowley
Rodrigues Campain
Claire Tollner
Kadeem Flosi
Mayumi Kolmetz
Clifford Rim
Mujtaba Nicka
Aditya Kusko
Kadeem Flosi
Kaitlin Ostrosky
Leon Oldroyd
Smith Glick
Claire Tollner
Emily Whobrey
Aditya Kusko
Faith Gillian
Alejandro Perin
Clifford Rim
Francesco Shinko
Kaitlin Ostrosky
Leja Caldarera
David Darakjy
Aika Inouye
Murillo Malet
Francesco Shinko
Isabel Bowley
Salvatore Stockham
Francesco Shinko
Faith Gillian
Leon Oldroyd
Adams Morasca
Jefferson Schemmer
Sinclair Waycott
Silvio Slusarski
Julie Stenseth
Clifford Rim
Kadeem Flosi
Leja Caldarera
Murillo Malet
Jefferson Schemmer
Kaitlin Ostrosky
Adams Morasca
IdCountryDate
1000Brazil2026-03-28
1001Brazil2026-03-28
1002Germany2026-03-24
1003France2026-04-05
1004Russia2026-04-04
1005Brazil2026-04-01
1006Australia2026-03-25
1007Japan2026-04-05
1008Germany2026-04-22
1009Japan2026-04-03
1010Australia2026-04-17
1011Italy2026-03-31
1012Argentina2026-04-07
1013Russia2026-04-22
1014Italy2026-04-22
1015Canada2026-04-11
1016Brazil2026-04-19
1017Italy2026-04-05
1018Argentina2026-04-19
1019India2026-04-11
1020Japan2026-04-03
1021Germany2026-04-10
1022United Kingdom2026-04-18
1023Spain2026-03-31
1024United Kingdom2026-04-03
1025Spain2026-04-18
1026Spain2026-04-05
1027Australia2026-03-26
1028Russia2026-04-19
1029France2026-04-10
1030France2026-03-29
1031Australia2026-04-08
1032Spain2026-04-20
1033Argentina2026-04-19
1034France2026-04-05
1035Japan2026-03-30
1036Australia2026-04-13
1037Japan2026-04-19
1038India2026-04-10
1039India2026-04-11
1040Russia2026-03-29
1041Australia2026-04-12
1042Brazil2026-04-02
1043Brazil2026-04-13
1044Brazil2026-04-14
1045Japan2026-04-02
1046Brazil2026-03-29
1047Italy2026-04-04
1048India2026-03-30
1049Australia2026-04-16

On-Demand Data

NameIdCountryDate
Morrow Ruta1000Russia2026-04-08
Jennifer Amigon1001Australia2026-04-01
Mujtaba Nicka1002Argentina2026-03-28
Johnson Sergi1003Japan2026-04-22
Jennifer Amigon1004India2026-04-11
Maisha Rulapaugh1005Germany2026-03-24
Chavez Briddick1006Brazil2026-04-21
Maisha Rulapaugh1007Argentina2026-04-03
Arvin Albares1008Spain2026-04-01
Jefferson Schemmer1009Argentina2026-04-11
Aditya Kusko1010Russia2026-04-04
Jefferson Schemmer1011India2026-03-28
Munro Ferencz1012United Kingdom2026-04-22
Morrow Ruta1013Japan2026-04-05
Adams Morasca1014Japan2026-04-06
Nicolas Iturbide1015Germany2026-04-04
David Darakjy1016Brazil2026-04-21
Nicolas Iturbide1017Japan2026-04-02
Ricardo Gaucho1018Australia2026-04-06
Kaitlin Ostrosky1019Japan2026-03-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco ShinkoIndiaXuxue Feng PROPOSAL
Ashley DoeUnited KingdomBernardo Dominic UNQUALIFIED
Aditya KuskoItalyBernardo Dominic PROPOSAL
Jennifer AmigonIndiaXuxue Feng RENEWAL
Antonio CaudyUnited KingdomAnna Fali QUALIFIED
Nicolas IturbideBrazilAmy Elsner NEGOTIATION
David DarakjyCanadaAmy Elsner PROPOSAL
Maria MarrierFranceStephen Shaw RENEWAL
Greenwood BologniaIndiaStephen Shaw RENEWAL
Greenwood BologniaJapanOnyama Limba RENEWAL
Arvin AlbaresRussiaBernardo Dominic PROPOSAL
Wickens NestleItalyIvan Magalhaes UNQUALIFIED
Aruna FigeroaRussiaBernardo Dominic PROPOSAL
Claire TollnerJapanBernardo Dominic QUALIFIED
Juan WieserAustraliaIoni Bowcher RENEWAL
Jennifer AmigonIndiaIvan Magalhaes UNQUALIFIED
Maria MarrierUnited KingdomAsiya Javayant RENEWAL
Johnson SergiAustraliaAnna Fali NEW
Adams MorascaUnited KingdomXuxue Feng PROPOSAL
Aditya KuskoUnited KingdomBernardo Dominic NEGOTIATION
Chavez BriddickArgentinaStephen Shaw RENEWAL
Kaitlin OstroskySpainStephen Shaw NEGOTIATION
Smith GlickFranceStephen Shaw RENEWAL
Francesco ShinkoAustraliaXuxue Feng UNQUALIFIED
Stacey MacleadArgentinaAnna Fali NEW
Aditya KuskoItalyAsiya Javayant NEGOTIATION
Leja CaldareraGermanyAnna Fali UNQUALIFIED
Smith GlickUnited KingdomOnyama Limba PROPOSAL
Chavez BriddickArgentinaAmy Elsner QUALIFIED
Greenwood BologniaIndiaStephen Shaw UNQUALIFIED
Isabel BowleySpainOnyama Limba NEGOTIATION
Ivar PaprockiRussiaIvan Magalhaes NEW
Jennifer AmigonUnited KingdomIvan Magalhaes RENEWAL
Wickens NestleUnited KingdomOnyama Limba RENEWAL
Antonio CaudyIndiaAsiya Javayant RENEWAL
Francesco ShinkoUnited KingdomBernardo Dominic NEW
Chavez BriddickAustraliaAsiya Javayant PROPOSAL
Aruna FigeroaRussiaStephen Shaw PROPOSAL
Murillo MaletCanadaIoni Bowcher UNQUALIFIED
Smith GlickCanadaXuxue Feng 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>