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
Francesco ShinkoRussiaOnyama Limba RENEWAL
Clifford RimRussiaElwin Sharvill NEGOTIATION
Deepesh ChuiUnited KingdomBernardo Dominic NEGOTIATION
Murillo MaletAustraliaIvan Magalhaes NEW
Deepesh ChuiItalyIvan Magalhaes PROPOSAL
Sinclair WaycottGermanyOnyama Limba UNQUALIFIED
Darci PoquetteCanadaAmy Elsner UNQUALIFIED
Costa DilliardArgentinaAmy Elsner UNQUALIFIED
Greenwood BologniaItalyElwin Sharvill PROPOSAL
Jefferson SchemmerUnited KingdomAmy Elsner UNQUALIFIED
Cody SaylorsFranceAnna Fali QUALIFIED
Jefferson SchemmerFranceXuxue Feng QUALIFIED
Deepesh ChuiSpainXuxue Feng RENEWAL
Aika InouyeRussiaAsiya Javayant QUALIFIED
Emily WhobreyArgentinaStephen Shaw RENEWAL
Isabel BowleyGermanyAmy Elsner NEGOTIATION
Salvatore StockhamCanadaIvan Magalhaes NEGOTIATION
Costa DilliardFranceXuxue Feng RENEWAL
Octavia MaletGermanyAsiya Javayant PROPOSAL
Jennifer AmigonCanadaBernardo Dominic NEW
Antonio CaudyJapanAnna Fali RENEWAL
Isabel BowleyUnited KingdomElwin Sharvill NEGOTIATION
Julie StensethCanadaBernardo Dominic QUALIFIED
Silvio SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Julie StensethBrazilXuxue Feng NEW
Mayumi KolmetzRussiaIoni Bowcher QUALIFIED
Jennifer AmigonSpainXuxue Feng UNQUALIFIED
Stacey MacleadJapanXuxue Feng QUALIFIED
Silvio SlusarskiJapanAsiya Javayant NEW
Chavez BriddickRussiaBernardo Dominic UNQUALIFIED
Silvio SlusarskiAustraliaStephen Shaw QUALIFIED
Juan WieserBrazilBernardo Dominic NEW
Ricardo GauchoUnited KingdomAmy Elsner RENEWAL
Salvatore StockhamIndiaElwin Sharvill NEGOTIATION
Jones VocelkaGermanyXuxue Feng UNQUALIFIED
Emily WhobreyCanadaElwin Sharvill NEW
Julie StensethGermanyAsiya Javayant NEW
Jefferson SchemmerFranceXuxue Feng NEGOTIATION
Murillo MaletUnited KingdomOnyama Limba RENEWAL
Kadeem FlosiUnited KingdomStephen Shaw NEW
Chavez BriddickArgentinaXuxue Feng NEW
Costa DilliardArgentinaIoni Bowcher PROPOSAL
Isabel BowleyBrazilStephen Shaw NEGOTIATION
Maria MarrierItalyIvan Magalhaes RENEWAL
Julie StensethJapanAmy Elsner QUALIFIED
Chavez BriddickAustraliaOnyama Limba PROPOSAL
Nicolas IturbideJapanAnna Fali UNQUALIFIED
Ricardo GauchoGermanyAmy Elsner RENEWAL
Antonio CaudyItalyElwin Sharvill QUALIFIED
Octavia MaletCanadaAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Claire TollnerSpainAnna Fali NEGOTIATION
Leja CaldareraCanadaIoni Bowcher NEW
Chavez BriddickCanadaAmy Elsner NEGOTIATION
Faith GillianAustraliaBernardo Dominic NEGOTIATION
Antonio CaudyAustraliaXuxue Feng NEW
Chavez BriddickJapanBernardo Dominic QUALIFIED
Maisha RulapaughCanadaAsiya Javayant NEGOTIATION
Ivar PaprockiFranceIvan Magalhaes NEGOTIATION
Jefferson SchemmerJapanOnyama Limba NEGOTIATION
Kadeem FlosiCanadaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez BriddickBrazil2026-05-15Printing Dimensions RENEWAL97Onyama Limba
1001Mujtaba NickaIndia2026-05-09Feiner Bros NEGOTIATION68Ioni Bowcher
1002Kaitlin OstroskyRussia2026-05-24Dorl, James J Esq QUALIFIED90Onyama Limba
1003Leon OldroydJapan2026-05-13Feiner Bros QUALIFIED84Elwin Sharvill
1004Mayumi KolmetzUnited Kingdom2026-05-24Rangoni Of Florence NEW86Onyama Limba
1005Rodrigues CampainItaly2026-05-15Rousseaux, Michael Esq QUALIFIED90Stephen Shaw
1006Aruna FigeroaItaly2026-05-20King, Christopher A Esq QUALIFIED36Ioni Bowcher
1007Julie StensethCanada2026-05-22Printing Dimensions UNQUALIFIED32Anna Fali
1008Smith GlickSpain2026-05-22Feiner Bros RENEWAL68Ivan Magalhaes
1009Morrow RutaAustralia2026-05-21Feiner Bros NEW6Amy Elsner
1010Misaki RoysterJapan2026-05-23Feltz Printing Service RENEWAL60Amy Elsner
1011Jones VocelkaUnited Kingdom2026-04-26Dorl, James J Esq NEGOTIATION54Xuxue Feng
1012Johnson SergiJapan2026-05-03Buckley Miller Wright NEW18Ioni Bowcher
1013Octavia MaletCanada2026-05-12Feiner Bros UNQUALIFIED97Xuxue Feng
1014Emily WhobreyFrance2026-05-01Buckley Miller Wright UNQUALIFIED63Stephen Shaw
1015Sinclair WaycottRussia2026-04-29Truhlar And Truhlar Attys QUALIFIED63Xuxue Feng
1016Murillo MaletAustralia2026-05-19Chemel, James L Cpa NEW80Ioni Bowcher
1017Francesco ShinkoGermany2026-05-18Chapman, Ross E Esq UNQUALIFIED33Bernardo Dominic
1018Octavia MaletCanada2026-04-26Feiner Bros NEW46Ioni Bowcher
1019Smith GlickUnited Kingdom2026-05-10Dorl, James J Esq QUALIFIED92Anna Fali
1020Mujtaba NickaFrance2026-05-23Buckley Miller Wright QUALIFIED70Anna Fali
1021Clifford RimCanada2026-05-12Chapman, Ross E Esq UNQUALIFIED24Onyama Limba
1022Sinclair WaycottBrazil2026-05-05Benton, John B Jr QUALIFIED7Onyama Limba
1023Faith GillianRussia2026-05-10Commercial Press PROPOSAL55Amy Elsner
1024David DarakjyBrazil2026-05-13Feltz Printing Service UNQUALIFIED10Ivan Magalhaes
1025Isabel BowleyJapan2026-05-17Dorl, James J Esq PROPOSAL74Bernardo Dominic
1026Salvatore StockhamItaly2026-05-15Rangoni Of Florence QUALIFIED74Xuxue Feng
1027Ashley DoeBrazil2026-05-22Truhlar And Truhlar Attys NEGOTIATION5Ioni Bowcher
1028Johnson SergiSpain2026-05-16Chapman, Ross E Esq NEGOTIATION24Bernardo Dominic
1029Mayumi KolmetzBrazil2026-05-13Feltz Printing Service NEW29Stephen Shaw
1030Faith GillianUnited Kingdom2026-04-28Morlong Associates NEGOTIATION75Ivan Magalhaes
1031Leja CaldareraAustralia2026-04-29Chapman, Ross E Esq RENEWAL87Xuxue Feng
1032Julie StensethItaly2026-05-20Morlong Associates PROPOSAL39Xuxue Feng
1033Nicolas IturbideUnited Kingdom2026-05-03Printing Dimensions PROPOSAL50Anna Fali
1034Arvin AlbaresBrazil2026-05-03Morlong Associates NEGOTIATION88Elwin Sharvill
1035Kaitlin OstroskySpain2026-04-26Buckley Miller Wright NEGOTIATION26Ioni Bowcher
1036Stacey MacleadUnited Kingdom2026-05-24Feiner Bros NEGOTIATION84Xuxue Feng
1037David DarakjyAustralia2026-05-02Chapman, Ross E Esq RENEWAL62Xuxue Feng
1038Murillo MaletIndia2026-04-29Chapman, Ross E Esq QUALIFIED80Amy Elsner
1039Arvin AlbaresFrance2026-05-18Feiner Bros NEW63Bernardo Dominic
1040Aika InouyeIndia2026-05-09Buckley Miller Wright NEGOTIATION28Bernardo Dominic
1041Arvin AlbaresCanada2026-05-09King, Christopher A Esq UNQUALIFIED47Ioni Bowcher
1042Deepesh ChuiArgentina2026-05-11Printing Dimensions UNQUALIFIED31Asiya Javayant
1043Ivar PaprockiCanada2026-04-30Chanay, Jeffrey A Esq QUALIFIED19Ivan Magalhaes
1044Morrow RutaIndia2026-05-04Rousseaux, Michael Esq NEGOTIATION1Bernardo Dominic
1045Mujtaba NickaIndia2026-05-02Benton, John B Jr PROPOSAL82Amy Elsner
1046Munro FerenczIndia2026-05-23Buckley Miller Wright QUALIFIED61Xuxue Feng
1047Antonio CaudyRussia2026-05-08Feltz Printing Service NEW22Ivan Magalhaes
1048Tony FollerJapan2026-05-04Truhlar And Truhlar Attys UNQUALIFIED58Xuxue Feng
1049Maria MarrierSpain2026-05-01Chapman, Ross E Esq NEGOTIATION64Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Alejandro PerinBrazilAmy Elsner UNQUALIFIED
Leja CaldareraSpainStephen Shaw UNQUALIFIED
Maisha RulapaughFranceAmy Elsner PROPOSAL
Ricardo GauchoGermanyElwin Sharvill QUALIFIED
Alejandro PerinJapanElwin Sharvill QUALIFIED
Francesco ShinkoArgentinaStephen Shaw NEW
Francesco ShinkoAustraliaAnna Fali UNQUALIFIED
Faith GillianItalyAsiya Javayant NEGOTIATION
Cody SaylorsSpainAsiya Javayant QUALIFIED
Darci PoquetteJapanIvan Magalhaes RENEWAL
Leon OldroydJapanElwin Sharvill PROPOSAL
Maria MarrierFranceAmy Elsner PROPOSAL
Kaitlin OstroskyBrazilAnna Fali RENEWAL
Smith GlickCanadaXuxue Feng RENEWAL
Sinclair WaycottRussiaXuxue Feng UNQUALIFIED
Claire TollnerArgentinaOnyama Limba UNQUALIFIED
Greenwood BologniaGermanyStephen Shaw PROPOSAL
Leja CaldareraJapanXuxue Feng QUALIFIED
James ButtRussiaAsiya Javayant UNQUALIFIED
Antonio CaudyJapanAmy Elsner PROPOSAL
Smith GlickItalyStephen Shaw RENEWAL
Aditya KuskoIndiaIvan Magalhaes UNQUALIFIED
Jones VocelkaAustraliaAmy Elsner QUALIFIED
Juan WieserItalyIoni Bowcher NEGOTIATION
Francesco ShinkoSpainAnna Fali RENEWAL
Izzy GarufiUnited KingdomIoni Bowcher NEW
Clifford RimSpainStephen Shaw UNQUALIFIED
Jefferson SchemmerIndiaAmy Elsner PROPOSAL
Ricardo GauchoAustraliaXuxue Feng UNQUALIFIED
Jones VocelkaSpainOnyama Limba NEW
Deepesh ChuiItalyAnna Fali UNQUALIFIED
Chavez BriddickBrazilAmy Elsner PROPOSAL
Chavez BriddickItalyBernardo Dominic PROPOSAL
Johnson SergiCanadaAnna Fali QUALIFIED
Deepesh ChuiGermanyIvan Magalhaes NEGOTIATION
Sinclair WaycottCanadaXuxue Feng NEGOTIATION
Maisha RulapaughBrazilElwin Sharvill UNQUALIFIED
Maisha RulapaughAustraliaAmy Elsner UNQUALIFIED
Emily WhobreyUnited KingdomIoni Bowcher PROPOSAL
Aruna FigeroaRussiaIvan Magalhaes NEGOTIATION
Clifford RimUnited KingdomIoni Bowcher QUALIFIED
Chavez BriddickUnited KingdomElwin Sharvill QUALIFIED
Aruna FigeroaRussiaXuxue Feng UNQUALIFIED
Ricardo GauchoBrazilIvan Magalhaes NEGOTIATION
James ButtUnited KingdomIoni Bowcher UNQUALIFIED
Murillo MaletCanadaXuxue Feng NEW
Octavia MaletUnited KingdomAnna Fali NEW
Juan WieserRussiaElwin Sharvill QUALIFIED
Arvin AlbaresJapanXuxue Feng PROPOSAL
Ashley DoeJapanAmy Elsner QUALIFIED
Frozen Columns
Name
Adams Morasca
Adams Morasca
Mujtaba Nicka
Nicolas Iturbide
Jefferson Schemmer
Nicolas Iturbide
Nicolas Iturbide
Kadeem Flosi
Alejandro Perin
Kadeem Flosi
Johnson Sergi
Jennifer Amigon
Smith Glick
Jennifer Amigon
Deepesh Chui
Adams Morasca
Chavez Briddick
Chavez Briddick
Leon Oldroyd
Jeanfrancois Venere
Jones Vocelka
Kadeem Flosi
Jeanfrancois Venere
Faith Gillian
Sinclair Waycott
Clifford Rim
Silvio Slusarski
Mujtaba Nicka
Julie Stenseth
David Darakjy
Juan Wieser
Juan Wieser
Alejandro Perin
Rodrigues Campain
Nicolas Iturbide
Julie Stenseth
Greenwood Bolognia
Ashley Doe
Emily Whobrey
Kaitlin Ostrosky
Maisha Rulapaugh
Smith Glick
Kaitlin Ostrosky
Rodrigues Campain
Ashley Doe
Ivar Paprocki
Clifford Rim
Faith Gillian
Jones Vocelka
Rodrigues Campain
IdCountryDate
1000Italy2026-05-04
1001Italy2026-05-15
1002Russia2026-05-09
1003United Kingdom2026-05-11
1004Russia2026-04-26
1005Germany2026-05-03
1006Russia2026-05-10
1007Germany2026-04-26
1008United Kingdom2026-05-14
1009Spain2026-05-18
1010Russia2026-04-29
1011Japan2026-04-28
1012Canada2026-05-04
1013United Kingdom2026-05-05
1014Argentina2026-04-29
1015Argentina2026-05-05
1016India2026-04-30
1017Japan2026-05-07
1018Spain2026-05-17
1019Canada2026-04-26
1020Japan2026-05-01
1021Germany2026-05-16
1022United Kingdom2026-04-27
1023Germany2026-05-03
1024Spain2026-04-25
1025India2026-05-15
1026France2026-05-16
1027Australia2026-05-14
1028Argentina2026-05-14
1029Australia2026-05-08
1030Argentina2026-04-29
1031United Kingdom2026-04-25
1032Australia2026-05-21
1033Germany2026-05-13
1034France2026-05-16
1035Brazil2026-04-27
1036Italy2026-05-01
1037United Kingdom2026-05-20
1038Germany2026-05-09
1039Argentina2026-05-24
1040Canada2026-05-17
1041Australia2026-05-02
1042Argentina2026-05-20
1043Brazil2026-05-03
1044Australia2026-05-18
1045Canada2026-04-26
1046Spain2026-05-02
1047United Kingdom2026-05-12
1048Germany2026-05-21
1049Brazil2026-05-10

On-Demand Data

NameIdCountryDate
Aditya Kusko1000Spain2026-05-14
Mayumi Kolmetz1001Italy2026-04-26
Kaitlin Ostrosky1002Brazil2026-05-15
Izzy Garufi1003Spain2026-05-05
Mayumi Kolmetz1004United Kingdom2026-04-26
Sinclair Waycott1005Japan2026-05-24
Ricardo Gaucho1006Japan2026-04-26
Kadeem Flosi1007India2026-05-16
Aruna Figeroa1008India2026-05-12
Antonio Caudy1009India2026-04-29
Kadeem Flosi1010Australia2026-05-21
Kaitlin Ostrosky1011Russia2026-05-11
Costa Dilliard1012Argentina2026-05-07
Leja Caldarera1013United Kingdom2026-05-17
Leon Oldroyd1014India2026-04-26
Izzy Garufi1015Germany2026-05-22
Johnson Sergi1016France2026-05-21
Smith Glick1017Russia2026-04-25
Nicolas Iturbide1018Brazil2026-05-10
Cody Saylors1019France2026-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow RutaSpainIoni Bowcher NEGOTIATION
James ButtItalyIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereAustraliaIvan Magalhaes PROPOSAL
Jennifer AmigonBrazilXuxue Feng RENEWAL
Nicolas IturbideJapanAnna Fali PROPOSAL
Munro FerenczItalyOnyama Limba RENEWAL
Rodrigues CampainSpainIvan Magalhaes PROPOSAL
James ButtAustraliaOnyama Limba QUALIFIED
Alejandro PerinRussiaStephen Shaw NEW
Rodrigues CampainIndiaOnyama Limba UNQUALIFIED
Octavia MaletUnited KingdomOnyama Limba PROPOSAL
Octavia MaletRussiaBernardo Dominic NEW
Salvatore StockhamUnited KingdomIoni Bowcher QUALIFIED
Deepesh ChuiJapanBernardo Dominic NEW
Ricardo GauchoIndiaStephen Shaw QUALIFIED
Rodrigues CampainRussiaIoni Bowcher NEGOTIATION
James ButtItalyAnna Fali NEGOTIATION
Aika InouyeBrazilStephen Shaw NEW
Sinclair WaycottJapanAmy Elsner NEGOTIATION
Juan WieserGermanyStephen Shaw RENEWAL
David DarakjyRussiaXuxue Feng PROPOSAL
Misaki RoysterFranceOnyama Limba NEGOTIATION
Nicolas IturbideRussiaAsiya Javayant NEW
Costa DilliardItalyBernardo Dominic NEGOTIATION
Isabel BowleyArgentinaAmy Elsner RENEWAL
Costa DilliardItalyIvan Magalhaes QUALIFIED
Silvio SlusarskiUnited KingdomElwin Sharvill NEGOTIATION
Costa DilliardJapanAsiya Javayant QUALIFIED
Greenwood BologniaCanadaStephen Shaw NEGOTIATION
Clifford RimGermanyAsiya Javayant NEGOTIATION
Isabel BowleyBrazilBernardo Dominic PROPOSAL
Misaki RoysterArgentinaBernardo Dominic RENEWAL
Johnson SergiArgentinaXuxue Feng NEGOTIATION
Deepesh ChuiRussiaElwin Sharvill QUALIFIED
Kaitlin OstroskyArgentinaAmy Elsner RENEWAL
Mujtaba NickaSpainXuxue Feng PROPOSAL
Jennifer AmigonGermanyIvan Magalhaes NEW
Wickens NestleCanadaBernardo Dominic NEGOTIATION
Francesco ShinkoRussiaOnyama Limba QUALIFIED
Misaki RoysterBrazilBernardo Dominic NEGOTIATION

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