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
Munro FerenczRussiaBernardo Dominic NEW
Aditya KuskoAustraliaXuxue Feng PROPOSAL
Nicolas IturbideArgentinaXuxue Feng QUALIFIED
Ricardo GauchoGermanyIvan Magalhaes RENEWAL
Jennifer AmigonArgentinaStephen Shaw RENEWAL
Cody SaylorsGermanyXuxue Feng RENEWAL
Silvio SlusarskiItalyAsiya Javayant QUALIFIED
Julie StensethAustraliaAnna Fali NEW
Sinclair WaycottSpainIvan Magalhaes PROPOSAL
Isabel BowleyCanadaOnyama Limba RENEWAL
Kadeem FlosiIndiaAsiya Javayant PROPOSAL
Izzy GarufiFranceOnyama Limba NEW
Jones VocelkaItalyIvan Magalhaes PROPOSAL
Munro FerenczFranceIoni Bowcher NEGOTIATION
Ashley DoeFranceAnna Fali PROPOSAL
Maria MarrierItalyElwin Sharvill UNQUALIFIED
Maria MarrierJapanAnna Fali UNQUALIFIED
David DarakjyJapanBernardo Dominic NEGOTIATION
Nicolas IturbideArgentinaStephen Shaw PROPOSAL
Greenwood BologniaIndiaOnyama Limba UNQUALIFIED
Francesco ShinkoJapanStephen Shaw NEGOTIATION
Chavez BriddickSpainAmy Elsner RENEWAL
Silvio SlusarskiRussiaStephen Shaw NEGOTIATION
Alejandro PerinSpainBernardo Dominic PROPOSAL
Clifford RimRussiaOnyama Limba UNQUALIFIED
Faith GillianBrazilAnna Fali PROPOSAL
Smith GlickGermanyXuxue Feng UNQUALIFIED
Aika InouyeFranceAnna Fali PROPOSAL
Aika InouyeItalyAnna Fali PROPOSAL
Ivar PaprockiUnited KingdomIoni Bowcher PROPOSAL
Nicolas IturbideFranceOnyama Limba RENEWAL
David DarakjyGermanyAnna Fali UNQUALIFIED
Salvatore StockhamGermanyOnyama Limba RENEWAL
Kaitlin OstroskyRussiaIoni Bowcher QUALIFIED
Jones VocelkaIndiaIoni Bowcher PROPOSAL
Cody SaylorsFranceAmy Elsner PROPOSAL
Aika InouyeRussiaIoni Bowcher NEGOTIATION
Munro FerenczUnited KingdomStephen Shaw UNQUALIFIED
Tony FollerArgentinaAsiya Javayant QUALIFIED
Smith GlickFranceIoni Bowcher QUALIFIED
Greenwood BologniaRussiaXuxue Feng QUALIFIED
Kadeem FlosiJapanElwin Sharvill UNQUALIFIED
Sinclair WaycottCanadaBernardo Dominic UNQUALIFIED
Juan WieserIndiaStephen Shaw RENEWAL
Juan WieserGermanyIvan Magalhaes PROPOSAL
Murillo MaletGermanyOnyama Limba NEW
Clifford RimSpainIoni Bowcher NEGOTIATION
Jefferson SchemmerFranceAmy Elsner PROPOSAL
Nicolas IturbideBrazilAsiya Javayant PROPOSAL
Mujtaba NickaRussiaElwin Sharvill PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Aruna FigeroaIndiaIoni Bowcher NEW
Sinclair WaycottGermanyBernardo Dominic UNQUALIFIED
Deepesh ChuiCanadaAnna Fali QUALIFIED
Johnson SergiIndiaIvan Magalhaes UNQUALIFIED
Ricardo GauchoRussiaAsiya Javayant NEGOTIATION
Isabel BowleyAustraliaIvan Magalhaes NEW
Johnson SergiRussiaOnyama Limba RENEWAL
Salvatore StockhamAustraliaIoni Bowcher QUALIFIED
Arvin AlbaresAustraliaIvan Magalhaes UNQUALIFIED
Izzy GarufiAustraliaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan WieserJapan2026-04-24Feltz Printing Service NEGOTIATION48Anna Fali
1001Leja CaldareraGermany2026-04-18Rangoni Of Florence NEW34Anna Fali
1002Julie StensethFrance2026-04-05Chanay, Jeffrey A Esq QUALIFIED86Onyama Limba
1003Mujtaba NickaCanada2026-04-21Rangoni Of Florence UNQUALIFIED60Xuxue Feng
1004Antonio CaudyBrazil2026-03-30Rangoni Of Florence QUALIFIED21Ivan Magalhaes
1005Leja CaldareraJapan2026-04-02Morlong Associates NEGOTIATION87Elwin Sharvill
1006David DarakjyCanada2026-04-22Feiner Bros RENEWAL47Ioni Bowcher
1007Stacey MacleadSpain2026-04-01Feiner Bros QUALIFIED3Onyama Limba
1008Murillo MaletCanada2026-04-20Feiner Bros UNQUALIFIED47Bernardo Dominic
1009James ButtAustralia2026-04-13Feiner Bros RENEWAL32Stephen Shaw
1010Chavez BriddickSpain2026-03-31Chapman, Ross E Esq PROPOSAL67Stephen Shaw
1011Smith GlickAustralia2026-04-01Rangoni Of Florence NEGOTIATION37Stephen Shaw
1012Munro FerenczBrazil2026-04-03Rangoni Of Florence QUALIFIED18Onyama Limba
1013Juan WieserBrazil2026-04-18King, Christopher A Esq QUALIFIED41Asiya Javayant
1014Deepesh ChuiItaly2026-04-25King, Christopher A Esq QUALIFIED70Xuxue Feng
1015Izzy GarufiJapan2026-04-26Chapman, Ross E Esq QUALIFIED16Stephen Shaw
1016Emily WhobreyFrance2026-04-13Commercial Press RENEWAL99Onyama Limba
1017Silvio SlusarskiSpain2026-04-10Truhlar And Truhlar Attys NEW92Bernardo Dominic
1018Aruna FigeroaIndia2026-03-31Chanay, Jeffrey A Esq UNQUALIFIED17Amy Elsner
1019Arvin AlbaresRussia2026-04-16Truhlar And Truhlar Attys UNQUALIFIED72Ivan Magalhaes
1020Rodrigues CampainIndia2026-04-24Rousseaux, Michael Esq PROPOSAL33Asiya Javayant
1021Antonio CaudyAustralia2026-04-15Printing Dimensions RENEWAL55Anna Fali
1022Johnson SergiJapan2026-04-10Feiner Bros QUALIFIED95Bernardo Dominic
1023Rodrigues CampainAustralia2026-04-10Benton, John B Jr RENEWAL29Stephen Shaw
1024Morrow RutaBrazil2026-04-08Morlong Associates NEGOTIATION31Ivan Magalhaes
1025Leja CaldareraItaly2026-04-04Benton, John B Jr PROPOSAL96Xuxue Feng
1026Francesco ShinkoJapan2026-04-01Chanay, Jeffrey A Esq QUALIFIED90Amy Elsner
1027Jennifer AmigonGermany2026-04-25Feltz Printing Service RENEWAL21Xuxue Feng
1028Leon OldroydUnited Kingdom2026-04-09Dorl, James J Esq UNQUALIFIED53Elwin Sharvill
1029Rodrigues CampainFrance2026-04-01Chanay, Jeffrey A Esq NEW81Xuxue Feng
1030Deepesh ChuiCanada2026-04-20Benton, John B Jr UNQUALIFIED89Anna Fali
1031Octavia MaletCanada2026-04-12King, Christopher A Esq NEGOTIATION71Anna Fali
1032James ButtIndia2026-04-12Rangoni Of Florence PROPOSAL57Stephen Shaw
1033Wickens NestleRussia2026-04-26Buckley Miller Wright QUALIFIED87Xuxue Feng
1034Aditya KuskoIndia2026-04-19King, Christopher A Esq PROPOSAL77Bernardo Dominic
1035Isabel BowleyUnited Kingdom2026-04-16Rangoni Of Florence NEW12Bernardo Dominic
1036Chavez BriddickSpain2026-04-24Truhlar And Truhlar Attys RENEWAL20Amy Elsner
1037Emily WhobreyArgentina2026-04-25Dorl, James J Esq RENEWAL42Xuxue Feng
1038Cody SaylorsGermany2026-04-09Chemel, James L Cpa NEW56Asiya Javayant
1039Kadeem FlosiJapan2026-04-03Chapman, Ross E Esq NEW32Onyama Limba
1040Julie StensethJapan2026-04-05Chemel, James L Cpa NEGOTIATION3Anna Fali
1041Silvio SlusarskiUnited Kingdom2026-04-12Chemel, James L Cpa NEGOTIATION87Asiya Javayant
1042Juan WieserJapan2026-04-13Dorl, James J Esq RENEWAL93Asiya Javayant
1043Ricardo GauchoItaly2026-04-26Dorl, James J Esq UNQUALIFIED44Anna Fali
1044Isabel BowleyFrance2026-04-15Printing Dimensions NEW20Onyama Limba
1045Ricardo GauchoIndia2026-04-15Feltz Printing Service PROPOSAL23Xuxue Feng
1046Emily WhobreyIndia2026-03-30Morlong Associates QUALIFIED2Amy Elsner
1047Leon OldroydIndia2026-04-21Chemel, James L Cpa PROPOSAL1Asiya Javayant
1048Kaitlin OstroskyItaly2026-03-31Dorl, James J Esq PROPOSAL5Stephen Shaw
1049Aditya KuskoAustralia2026-04-03Buckley Miller Wright RENEWAL62Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Nicolas IturbideArgentinaXuxue Feng PROPOSAL
Murillo MaletItalyAnna Fali UNQUALIFIED
Arvin AlbaresUnited KingdomStephen Shaw UNQUALIFIED
Jeanfrancois VenereJapanStephen Shaw PROPOSAL
Antonio CaudySpainBernardo Dominic QUALIFIED
Kaitlin OstroskyCanadaAnna Fali RENEWAL
Chavez BriddickSpainElwin Sharvill QUALIFIED
Jennifer AmigonAustraliaElwin Sharvill QUALIFIED
Izzy GarufiArgentinaAnna Fali NEGOTIATION
Wickens NestleAustraliaElwin Sharvill PROPOSAL
Francesco ShinkoFranceAmy Elsner UNQUALIFIED
Greenwood BologniaJapanAmy Elsner NEGOTIATION
Misaki RoysterSpainBernardo Dominic PROPOSAL
Tony FollerRussiaStephen Shaw NEGOTIATION
Alejandro PerinGermanyBernardo Dominic PROPOSAL
Francesco ShinkoUnited KingdomIoni Bowcher NEW
Smith GlickCanadaStephen Shaw PROPOSAL
Kadeem FlosiRussiaAmy Elsner NEGOTIATION
Alejandro PerinIndiaXuxue Feng PROPOSAL
Octavia MaletBrazilOnyama Limba QUALIFIED
Salvatore StockhamBrazilAnna Fali NEGOTIATION
Sinclair WaycottItalyStephen Shaw QUALIFIED
Salvatore StockhamCanadaAnna Fali QUALIFIED
Greenwood BologniaUnited KingdomAnna Fali QUALIFIED
Costa DilliardItalyIvan Magalhaes NEGOTIATION
Ashley DoeGermanyAsiya Javayant RENEWAL
Mujtaba NickaSpainOnyama Limba NEGOTIATION
Antonio CaudyBrazilAmy Elsner QUALIFIED
Izzy GarufiSpainBernardo Dominic RENEWAL
Adams MorascaAustraliaStephen Shaw RENEWAL
Ricardo GauchoFranceStephen Shaw PROPOSAL
Maria MarrierSpainIvan Magalhaes QUALIFIED
Ashley DoeAustraliaIoni Bowcher RENEWAL
Kaitlin OstroskyCanadaAmy Elsner RENEWAL
Stacey MacleadGermanyAnna Fali NEGOTIATION
Tony FollerIndiaElwin Sharvill NEGOTIATION
Mujtaba NickaFranceElwin Sharvill PROPOSAL
James ButtSpainIvan Magalhaes NEGOTIATION
Octavia MaletItalyXuxue Feng NEGOTIATION
Silvio SlusarskiArgentinaOnyama Limba RENEWAL
Stacey MacleadRussiaAsiya Javayant PROPOSAL
Chavez BriddickBrazilElwin Sharvill UNQUALIFIED
Alejandro PerinRussiaAnna Fali RENEWAL
Octavia MaletUnited KingdomIvan Magalhaes PROPOSAL
Izzy GarufiArgentinaAnna Fali QUALIFIED
Rodrigues CampainRussiaOnyama Limba RENEWAL
Costa DilliardGermanyOnyama Limba PROPOSAL
Salvatore StockhamItalyAmy Elsner PROPOSAL
Jeanfrancois VenereBrazilIoni Bowcher PROPOSAL
Morrow RutaSpainOnyama Limba NEGOTIATION
Frozen Columns
Name
Mayumi Kolmetz
Salvatore Stockham
Smith Glick
Claire Tollner
Adams Morasca
David Darakjy
Smith Glick
Ashley Doe
Stacey Maclead
Morrow Ruta
Costa Dilliard
Ricardo Gaucho
Aditya Kusko
Darci Poquette
Adams Morasca
Johnson Sergi
Arvin Albares
Ashley Doe
Stacey Maclead
Stacey Maclead
Tony Foller
Juan Wieser
Sinclair Waycott
Juan Wieser
Kaitlin Ostrosky
Jeanfrancois Venere
Morrow Ruta
Faith Gillian
Aika Inouye
Tony Foller
Alejandro Perin
Mujtaba Nicka
Faith Gillian
James Butt
Adams Morasca
Maisha Rulapaugh
Cody Saylors
Johnson Sergi
Arvin Albares
Jones Vocelka
Isabel Bowley
Morrow Ruta
Sinclair Waycott
Stacey Maclead
Antonio Caudy
Ivar Paprocki
Aditya Kusko
Aruna Figeroa
Kaitlin Ostrosky
Munro Ferencz
IdCountryDate
1000Brazil2026-04-22
1001Brazil2026-04-20
1002Japan2026-04-14
1003Australia2026-04-28
1004Argentina2026-04-21
1005Australia2026-04-23
1006United Kingdom2026-04-25
1007United Kingdom2026-04-12
1008Germany2026-04-17
1009Germany2026-04-27
1010Brazil2026-04-21
1011Japan2026-04-21
1012United Kingdom2026-04-21
1013France2026-04-01
1014Argentina2026-04-25
1015Spain2026-04-18
1016Canada2026-04-27
1017United Kingdom2026-04-27
1018Australia2026-04-22
1019India2026-04-08
1020Japan2026-04-13
1021Argentina2026-04-06
1022Italy2026-04-03
1023Japan2026-04-09
1024Australia2026-04-22
1025Italy2026-04-10
1026Spain2026-04-18
1027Russia2026-04-11
1028Canada2026-04-19
1029India2026-04-21
1030Australia2026-04-19
1031United Kingdom2026-04-02
1032Argentina2026-04-10
1033Italy2026-04-06
1034Germany2026-04-21
1035Brazil2026-04-10
1036United Kingdom2026-04-08
1037United Kingdom2026-04-25
1038Germany2026-04-07
1039India2026-04-27
1040Brazil2026-04-25
1041Australia2026-04-16
1042United Kingdom2026-04-01
1043Australia2026-04-18
1044Argentina2026-04-16
1045Spain2026-04-21
1046Italy2026-03-31
1047United Kingdom2026-04-17
1048United Kingdom2026-04-15
1049Spain2026-04-07

On-Demand Data

NameIdCountryDate
Arvin Albares1000Canada2026-04-07
Ashley Doe1001Canada2026-04-19
Clifford Rim1002India2026-04-25
Maisha Rulapaugh1003Germany2026-04-06
Maria Marrier1004Canada2026-04-26
Costa Dilliard1005Russia2026-04-13
Aruna Figeroa1006Canada2026-04-27
Clifford Rim1007Russia2026-04-03
Morrow Ruta1008Argentina2026-04-23
Jeanfrancois Venere1009France2026-04-25
Ricardo Gaucho1010India2026-04-27
Jones Vocelka1011France2026-04-04
Alejandro Perin1012Canada2026-04-09
Jones Vocelka1013Australia2026-04-10
Aika Inouye1014Brazil2026-04-20
Johnson Sergi1015Spain2026-04-15
Maria Marrier1016India2026-04-02
Morrow Ruta1017Russia2026-04-13
Salvatore Stockham1018Australia2026-04-03
Cody Saylors1019Germany2026-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aruna FigeroaJapanXuxue Feng PROPOSAL
Francesco ShinkoCanadaAnna Fali NEGOTIATION
Maisha RulapaughCanadaBernardo Dominic NEW
Tony FollerRussiaAnna Fali QUALIFIED
Antonio CaudyRussiaAnna Fali PROPOSAL
Mujtaba NickaArgentinaAsiya Javayant NEW
Maria MarrierItalyAnna Fali PROPOSAL
Sinclair WaycottJapanElwin Sharvill NEGOTIATION
Mayumi KolmetzBrazilXuxue Feng NEGOTIATION
Leja CaldareraBrazilAnna Fali RENEWAL
Faith GillianGermanyAnna Fali UNQUALIFIED
Alejandro PerinCanadaElwin Sharvill NEGOTIATION
Maisha RulapaughBrazilAmy Elsner QUALIFIED
Johnson SergiArgentinaOnyama Limba RENEWAL
Kaitlin OstroskyFranceXuxue Feng RENEWAL
Morrow RutaCanadaAmy Elsner QUALIFIED
Francesco ShinkoSpainBernardo Dominic QUALIFIED
Ashley DoeGermanyAsiya Javayant NEGOTIATION
Greenwood BologniaArgentinaAsiya Javayant NEW
Jefferson SchemmerBrazilBernardo Dominic QUALIFIED
Jennifer AmigonGermanyOnyama Limba UNQUALIFIED
Alejandro PerinItalyXuxue Feng RENEWAL
Mayumi KolmetzAustraliaBernardo Dominic RENEWAL
Jefferson SchemmerBrazilBernardo Dominic UNQUALIFIED
Adams MorascaArgentinaIvan Magalhaes NEGOTIATION
Johnson SergiBrazilOnyama Limba QUALIFIED
Izzy GarufiUnited KingdomIvan Magalhaes UNQUALIFIED
Arvin AlbaresCanadaXuxue Feng PROPOSAL
Adams MorascaUnited KingdomAsiya Javayant NEW
Kadeem FlosiItalyBernardo Dominic NEW
Ricardo GauchoJapanAnna Fali RENEWAL
Ashley DoeCanadaAnna Fali RENEWAL
Aruna FigeroaBrazilStephen Shaw NEW
Faith GillianArgentinaAmy Elsner NEGOTIATION
Leja CaldareraItalyAsiya Javayant QUALIFIED
Jennifer AmigonCanadaXuxue Feng UNQUALIFIED
Arvin AlbaresUnited KingdomAsiya Javayant NEW
Jeanfrancois VenereGermanyBernardo Dominic NEGOTIATION
Clifford RimRussiaIvan Magalhaes PROPOSAL
Alejandro PerinGermanyElwin Sharvill 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>