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
James ButtArgentinaAsiya Javayant RENEWAL
Kaitlin OstroskyBrazilStephen Shaw NEW
Clifford RimSpainAsiya Javayant UNQUALIFIED
Murillo MaletCanadaStephen Shaw UNQUALIFIED
Maisha RulapaughAustraliaAmy Elsner QUALIFIED
Mujtaba NickaFranceIvan Magalhaes RENEWAL
Isabel BowleyGermanyElwin Sharvill UNQUALIFIED
Maria MarrierFranceXuxue Feng PROPOSAL
Johnson SergiBrazilOnyama Limba PROPOSAL
Ricardo GauchoUnited KingdomXuxue Feng NEW
Mujtaba NickaCanadaXuxue Feng QUALIFIED
Ricardo GauchoAustraliaAmy Elsner PROPOSAL
Mujtaba NickaItalyAnna Fali NEW
Misaki RoysterCanadaElwin Sharvill PROPOSAL
Mayumi KolmetzItalyAsiya Javayant PROPOSAL
Stacey MacleadBrazilOnyama Limba RENEWAL
David DarakjyUnited KingdomAsiya Javayant QUALIFIED
Murillo MaletFranceAmy Elsner RENEWAL
Octavia MaletItalyIvan Magalhaes PROPOSAL
Maria MarrierCanadaXuxue Feng QUALIFIED
Juan WieserUnited KingdomIvan Magalhaes NEGOTIATION
Juan WieserSpainStephen Shaw UNQUALIFIED
Costa DilliardJapanBernardo Dominic NEGOTIATION
Antonio CaudyFranceIvan Magalhaes PROPOSAL
Francesco ShinkoArgentinaAsiya Javayant NEW
Francesco ShinkoItalyAmy Elsner NEW
Misaki RoysterItalyOnyama Limba NEW
Leon OldroydBrazilBernardo Dominic RENEWAL
Jefferson SchemmerUnited KingdomStephen Shaw PROPOSAL
Claire TollnerUnited KingdomAsiya Javayant NEW
Kaitlin OstroskyUnited KingdomXuxue Feng PROPOSAL
Salvatore StockhamRussiaOnyama Limba NEGOTIATION
Ashley DoeItalyAsiya Javayant PROPOSAL
Morrow RutaUnited KingdomAsiya Javayant NEW
Kaitlin OstroskyGermanyIoni Bowcher PROPOSAL
Costa DilliardGermanyAmy Elsner NEW
Jennifer AmigonItalyIoni Bowcher PROPOSAL
Wickens NestleBrazilElwin Sharvill NEW
Ricardo GauchoBrazilStephen Shaw RENEWAL
Claire TollnerIndiaIvan Magalhaes QUALIFIED
Leon OldroydSpainAmy Elsner NEGOTIATION
Izzy GarufiFranceAmy Elsner UNQUALIFIED
Francesco ShinkoRussiaElwin Sharvill PROPOSAL
Wickens NestleFranceXuxue Feng PROPOSAL
Aruna FigeroaAustraliaIoni Bowcher QUALIFIED
James ButtAustraliaXuxue Feng NEGOTIATION
Darci PoquetteUnited KingdomElwin Sharvill NEW
Leja CaldareraUnited KingdomAmy Elsner NEW
Claire TollnerIndiaIvan Magalhaes UNQUALIFIED
Chavez BriddickCanadaOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Salvatore StockhamFranceStephen Shaw QUALIFIED
Cody SaylorsRussiaBernardo Dominic NEGOTIATION
Jones VocelkaJapanElwin Sharvill UNQUALIFIED
Clifford RimAustraliaElwin Sharvill PROPOSAL
Jennifer AmigonRussiaAnna Fali UNQUALIFIED
Maria MarrierCanadaAsiya Javayant QUALIFIED
Ricardo GauchoArgentinaXuxue Feng QUALIFIED
Jennifer AmigonArgentinaIvan Magalhaes QUALIFIED
Arvin AlbaresCanadaXuxue Feng UNQUALIFIED
Izzy GarufiCanadaIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan WieserFrance2025-10-04Commercial Press PROPOSAL58Ivan Magalhaes
1001Isabel BowleyJapan2025-10-09Buckley Miller Wright RENEWAL36Bernardo Dominic
1002Jennifer AmigonRussia2025-09-23Feltz Printing Service NEGOTIATION99Elwin Sharvill
1003Ivar PaprockiCanada2025-09-20Truhlar And Truhlar Attys RENEWAL37Stephen Shaw
1004Antonio CaudyFrance2025-09-13Feltz Printing Service NEW87Elwin Sharvill
1005Smith GlickCanada2025-09-15Commercial Press PROPOSAL15Ivan Magalhaes
1006Mujtaba NickaCanada2025-10-04Buckley Miller Wright PROPOSAL65Amy Elsner
1007Nicolas IturbideFrance2025-09-19Benton, John B Jr PROPOSAL16Ioni Bowcher
1008Tony FollerGermany2025-10-08Chapman, Ross E Esq UNQUALIFIED82Ivan Magalhaes
1009Aika InouyeArgentina2025-09-13Chapman, Ross E Esq NEW77Xuxue Feng
1010Leon OldroydAustralia2025-10-10Benton, John B Jr UNQUALIFIED77Ivan Magalhaes
1011Leja CaldareraBrazil2025-10-03Benton, John B Jr RENEWAL13Onyama Limba
1012Johnson SergiArgentina2025-09-22Dorl, James J Esq NEW45Stephen Shaw
1013Kaitlin OstroskyRussia2025-09-14Rangoni Of Florence RENEWAL6Asiya Javayant
1014Francesco ShinkoBrazil2025-09-22Commercial Press QUALIFIED72Asiya Javayant
1015Silvio SlusarskiItaly2025-09-22Chanay, Jeffrey A Esq NEGOTIATION31Ivan Magalhaes
1016Aika InouyeFrance2025-10-03Feiner Bros PROPOSAL32Bernardo Dominic
1017Rodrigues CampainUnited Kingdom2025-09-15Feltz Printing Service RENEWAL76Stephen Shaw
1018Murillo MaletFrance2025-09-25Benton, John B Jr NEW69Ioni Bowcher
1019Munro FerenczAustralia2025-09-22Benton, John B Jr PROPOSAL74Elwin Sharvill
1020Mujtaba NickaAustralia2025-09-14Truhlar And Truhlar Attys PROPOSAL92Amy Elsner
1021Tony FollerCanada2025-09-22Benton, John B Jr NEGOTIATION76Asiya Javayant
1022Munro FerenczJapan2025-09-17Rangoni Of Florence UNQUALIFIED44Ivan Magalhaes
1023Leja CaldareraBrazil2025-09-22Feltz Printing Service UNQUALIFIED92Bernardo Dominic
1024Antonio CaudyIndia2025-10-01Chapman, Ross E Esq QUALIFIED4Stephen Shaw
1025Antonio CaudyGermany2025-09-18Chanay, Jeffrey A Esq RENEWAL32Anna Fali
1026Greenwood BologniaGermany2025-09-16Buckley Miller Wright UNQUALIFIED68Stephen Shaw
1027Morrow RutaFrance2025-09-15Morlong Associates RENEWAL71Amy Elsner
1028Jeanfrancois VenereJapan2025-10-08Rangoni Of Florence PROPOSAL30Xuxue Feng
1029Munro FerenczRussia2025-09-18Chapman, Ross E Esq PROPOSAL46Amy Elsner
1030Clifford RimGermany2025-10-04Benton, John B Jr QUALIFIED5Anna Fali
1031Maria MarrierAustralia2025-09-24Benton, John B Jr NEGOTIATION87Asiya Javayant
1032Leja CaldareraIndia2025-09-26Buckley Miller Wright PROPOSAL4Elwin Sharvill
1033Nicolas IturbideArgentina2025-09-15Benton, John B Jr UNQUALIFIED30Xuxue Feng
1034Murillo MaletUnited Kingdom2025-10-07Commercial Press NEW89Amy Elsner
1035Johnson SergiAustralia2025-09-22Morlong Associates PROPOSAL43Stephen Shaw
1036Ivar PaprockiRussia2025-09-20Dorl, James J Esq RENEWAL28Stephen Shaw
1037Tony FollerBrazil2025-10-08Rangoni Of Florence PROPOSAL95Asiya Javayant
1038Munro FerenczIndia2025-09-26Rousseaux, Michael Esq NEW79Asiya Javayant
1039Salvatore StockhamFrance2025-10-04Buckley Miller Wright NEW1Xuxue Feng
1040Mayumi KolmetzSpain2025-09-16Chemel, James L Cpa PROPOSAL84Onyama Limba
1041Tony FollerSpain2025-10-10Printing Dimensions UNQUALIFIED34Ioni Bowcher
1042Rodrigues CampainArgentina2025-10-10Chemel, James L Cpa NEGOTIATION34Stephen Shaw
1043Chavez BriddickCanada2025-09-20Chemel, James L Cpa RENEWAL97Asiya Javayant
1044Jones VocelkaGermany2025-09-15Truhlar And Truhlar Attys PROPOSAL75Anna Fali
1045Leja CaldareraIndia2025-09-25Feiner Bros NEGOTIATION43Elwin Sharvill
1046Cody SaylorsIndia2025-10-08Chapman, Ross E Esq NEGOTIATION56Bernardo Dominic
1047Leon OldroydCanada2025-09-24Truhlar And Truhlar Attys PROPOSAL86Xuxue Feng
1048Mujtaba NickaArgentina2025-10-11Chemel, James L Cpa QUALIFIED22Bernardo Dominic
1049Isabel BowleyArgentina2025-09-14Rousseaux, Michael Esq PROPOSAL84Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamUnited KingdomBernardo Dominic RENEWAL
Antonio CaudyGermanyIoni Bowcher QUALIFIED
Antonio CaudyUnited KingdomIvan Magalhaes RENEWAL
Claire TollnerBrazilIoni Bowcher RENEWAL
Emily WhobreyAustraliaAnna Fali NEGOTIATION
David DarakjyFranceOnyama Limba UNQUALIFIED
Jefferson SchemmerBrazilXuxue Feng NEW
Jones VocelkaSpainIoni Bowcher QUALIFIED
Francesco ShinkoRussiaIvan Magalhaes QUALIFIED
Greenwood BologniaFranceXuxue Feng UNQUALIFIED
Murillo MaletSpainAmy Elsner NEW
Ashley DoeBrazilXuxue Feng PROPOSAL
Francesco ShinkoBrazilStephen Shaw NEGOTIATION
Francesco ShinkoSpainElwin Sharvill NEW
Jennifer AmigonIndiaElwin Sharvill QUALIFIED
Maisha RulapaughJapanXuxue Feng QUALIFIED
Morrow RutaRussiaXuxue Feng NEW
Mujtaba NickaIndiaIoni Bowcher PROPOSAL
Julie StensethSpainElwin Sharvill NEGOTIATION
Wickens NestleItalyAmy Elsner PROPOSAL
Nicolas IturbideRussiaAmy Elsner UNQUALIFIED
Munro FerenczFranceIvan Magalhaes PROPOSAL
James ButtUnited KingdomElwin Sharvill QUALIFIED
Alejandro PerinBrazilAmy Elsner UNQUALIFIED
Leja CaldareraItalyOnyama Limba QUALIFIED
Aika InouyeGermanyIvan Magalhaes NEW
Octavia MaletCanadaXuxue Feng PROPOSAL
Emily WhobreyArgentinaBernardo Dominic RENEWAL
Tony FollerCanadaAmy Elsner NEGOTIATION
Isabel BowleyGermanyBernardo Dominic NEGOTIATION
Kadeem FlosiRussiaAnna Fali NEW
Aruna FigeroaUnited KingdomIoni Bowcher RENEWAL
Jefferson SchemmerBrazilIvan Magalhaes RENEWAL
Francesco ShinkoBrazilStephen Shaw UNQUALIFIED
Morrow RutaBrazilAnna Fali NEGOTIATION
Darci PoquetteItalyAsiya Javayant NEGOTIATION
Ivar PaprockiItalyAsiya Javayant QUALIFIED
Emily WhobreyCanadaXuxue Feng RENEWAL
Aruna FigeroaGermanyElwin Sharvill NEGOTIATION
Stacey MacleadUnited KingdomStephen Shaw UNQUALIFIED
Jones VocelkaArgentinaStephen Shaw PROPOSAL
Clifford RimCanadaElwin Sharvill QUALIFIED
Darci PoquetteCanadaIvan Magalhaes QUALIFIED
Stacey MacleadIndiaAsiya Javayant UNQUALIFIED
Leja CaldareraItalyBernardo Dominic NEW
Arvin AlbaresArgentinaXuxue Feng UNQUALIFIED
Munro FerenczGermanyIoni Bowcher PROPOSAL
Aditya KuskoIndiaStephen Shaw UNQUALIFIED
Costa DilliardJapanOnyama Limba UNQUALIFIED
Costa DilliardUnited KingdomIvan Magalhaes RENEWAL
Frozen Columns
Name
Munro Ferencz
Mujtaba Nicka
Juan Wieser
Maisha Rulapaugh
Antonio Caudy
Kaitlin Ostrosky
Kaitlin Ostrosky
Leja Caldarera
Adams Morasca
Emily Whobrey
Maisha Rulapaugh
Smith Glick
Faith Gillian
Emily Whobrey
Maisha Rulapaugh
Kaitlin Ostrosky
Johnson Sergi
James Butt
Arvin Albares
Deepesh Chui
Misaki Royster
Darci Poquette
Emily Whobrey
Jefferson Schemmer
Izzy Garufi
Rodrigues Campain
Jefferson Schemmer
Cody Saylors
Juan Wieser
Leon Oldroyd
Emily Whobrey
Arvin Albares
Alejandro Perin
Leja Caldarera
Morrow Ruta
Morrow Ruta
Jeanfrancois Venere
Clifford Rim
Aika Inouye
Aditya Kusko
Ivar Paprocki
Aruna Figeroa
Leon Oldroyd
James Butt
Julie Stenseth
Johnson Sergi
Costa Dilliard
Silvio Slusarski
Ivar Paprocki
Mujtaba Nicka
IdCountryDate
1000Italy2025-09-26
1001India2025-10-02
1002Spain2025-09-15
1003Canada2025-09-22
1004Canada2025-09-27
1005Germany2025-09-28
1006Japan2025-10-02
1007Spain2025-09-26
1008United Kingdom2025-10-07
1009Canada2025-10-04
1010Brazil2025-09-13
1011Russia2025-09-23
1012Russia2025-09-13
1013Italy2025-09-27
1014Russia2025-10-11
1015Italy2025-09-24
1016Canada2025-10-05
1017Italy2025-10-10
1018Australia2025-10-09
1019Spain2025-09-28
1020United Kingdom2025-09-18
1021France2025-10-11
1022Spain2025-09-13
1023Brazil2025-09-18
1024Germany2025-09-29
1025Brazil2025-10-11
1026Australia2025-09-28
1027India2025-09-25
1028Russia2025-09-16
1029Australia2025-09-29
1030United Kingdom2025-09-30
1031Italy2025-10-11
1032France2025-09-15
1033Australia2025-09-17
1034Italy2025-10-03
1035Australia2025-10-04
1036France2025-09-19
1037United Kingdom2025-09-24
1038Brazil2025-10-03
1039Spain2025-10-06
1040France2025-10-01
1041Australia2025-09-17
1042Russia2025-09-22
1043Canada2025-10-04
1044Italy2025-10-01
1045Brazil2025-10-10
1046Germany2025-10-10
1047Australia2025-09-14
1048Brazil2025-09-19
1049Japan2025-09-28

On-Demand Data

NameIdCountryDate
Greenwood Bolognia1000France2025-09-23
Costa Dilliard1001Germany2025-09-29
Clifford Rim1002Australia2025-09-23
Francesco Shinko1003Brazil2025-09-23
Clifford Rim1004United Kingdom2025-10-11
Silvio Slusarski1005Brazil2025-10-10
Juan Wieser1006United Kingdom2025-09-26
Maisha Rulapaugh1007Argentina2025-10-08
Mayumi Kolmetz1008Australia2025-09-16
James Butt1009Germany2025-10-03
Mayumi Kolmetz1010Argentina2025-09-28
Morrow Ruta1011Italy2025-09-28
Faith Gillian1012Canada2025-09-18
Leon Oldroyd1013Russia2025-09-21
Octavia Malet1014France2025-10-08
Ricardo Gaucho1015India2025-09-28
Julie Stenseth1016Brazil2025-09-19
James Butt1017Australia2025-09-29
Octavia Malet1018Brazil2025-10-10
Tony Foller1019Russia2025-09-23
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez BriddickRussiaIvan Magalhaes PROPOSAL
Chavez BriddickSpainXuxue Feng UNQUALIFIED
Aruna FigeroaBrazilAmy Elsner PROPOSAL
Greenwood BologniaUnited KingdomAmy Elsner QUALIFIED
Salvatore StockhamSpainElwin Sharvill PROPOSAL
Aika InouyeJapanIvan Magalhaes NEW
Izzy GarufiUnited KingdomXuxue Feng NEGOTIATION
Jeanfrancois VenereJapanBernardo Dominic NEGOTIATION
Stacey MacleadBrazilAmy Elsner PROPOSAL
Deepesh ChuiItalyAsiya Javayant RENEWAL
Juan WieserItalyAsiya Javayant UNQUALIFIED
Salvatore StockhamUnited KingdomIoni Bowcher UNQUALIFIED
Jennifer AmigonJapanXuxue Feng NEGOTIATION
Ashley DoeAustraliaAnna Fali NEW
Aditya KuskoItalyIoni Bowcher PROPOSAL
Greenwood BologniaItalyAsiya Javayant UNQUALIFIED
Rodrigues CampainBrazilAnna Fali NEW
Alejandro PerinUnited KingdomBernardo Dominic NEGOTIATION
Wickens NestleUnited KingdomAmy Elsner NEW
Mujtaba NickaRussiaStephen Shaw NEGOTIATION
Chavez BriddickFranceStephen Shaw NEGOTIATION
Ivar PaprockiUnited KingdomIvan Magalhaes RENEWAL
Kaitlin OstroskyUnited KingdomElwin Sharvill QUALIFIED
Alejandro PerinArgentinaAsiya Javayant NEGOTIATION
Salvatore StockhamUnited KingdomXuxue Feng NEW
Faith GillianJapanIvan Magalhaes UNQUALIFIED
Salvatore StockhamIndiaAsiya Javayant NEW
Johnson SergiRussiaAsiya Javayant QUALIFIED
Rodrigues CampainIndiaBernardo Dominic QUALIFIED
Jefferson SchemmerItalyAsiya Javayant UNQUALIFIED
Ricardo GauchoBrazilAmy Elsner NEGOTIATION
Isabel BowleyUnited KingdomXuxue Feng UNQUALIFIED
Aditya KuskoBrazilIvan Magalhaes NEGOTIATION
Kadeem FlosiJapanAmy Elsner NEGOTIATION
Aika InouyeJapanIoni Bowcher PROPOSAL
Mayumi KolmetzArgentinaElwin Sharvill UNQUALIFIED
Mujtaba NickaIndiaElwin Sharvill UNQUALIFIED
Antonio CaudyFranceOnyama Limba NEW
Isabel BowleyFranceIvan Magalhaes RENEWAL
Aika InouyeJapanElwin Sharvill 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>