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
Johnson SergiItalyBernardo Dominic QUALIFIED
Francesco ShinkoFranceIvan Magalhaes UNQUALIFIED
Leja CaldareraFranceAnna Fali RENEWAL
Morrow RutaIndiaXuxue Feng NEW
Munro FerenczIndiaXuxue Feng UNQUALIFIED
Jones VocelkaItalyAsiya Javayant PROPOSAL
Darci PoquetteArgentinaIoni Bowcher UNQUALIFIED
Tony FollerJapanAsiya Javayant PROPOSAL
Jones VocelkaJapanAsiya Javayant NEW
Darci PoquetteCanadaAmy Elsner RENEWAL
Morrow RutaGermanyOnyama Limba PROPOSAL
Salvatore StockhamGermanyAmy Elsner UNQUALIFIED
Aditya KuskoRussiaAnna Fali UNQUALIFIED
Leon OldroydIndiaAmy Elsner PROPOSAL
Chavez BriddickItalyBernardo Dominic QUALIFIED
Stacey MacleadUnited KingdomOnyama Limba RENEWAL
Mayumi KolmetzFranceIoni Bowcher RENEWAL
Wickens NestleSpainElwin Sharvill QUALIFIED
Claire TollnerArgentinaAnna Fali QUALIFIED
Deepesh ChuiItalyXuxue Feng NEGOTIATION
Costa DilliardAustraliaXuxue Feng UNQUALIFIED
Chavez BriddickGermanyAmy Elsner QUALIFIED
Isabel BowleyJapanBernardo Dominic UNQUALIFIED
Misaki RoysterFranceXuxue Feng QUALIFIED
Aika InouyeIndiaAsiya Javayant NEGOTIATION
Cody SaylorsGermanyOnyama Limba UNQUALIFIED
Morrow RutaCanadaElwin Sharvill UNQUALIFIED
Deepesh ChuiArgentinaStephen Shaw PROPOSAL
Greenwood BologniaIndiaIvan Magalhaes NEGOTIATION
Clifford RimGermanyIvan Magalhaes NEW
Maisha RulapaughIndiaAmy Elsner QUALIFIED
Juan WieserItalyXuxue Feng NEW
Julie StensethRussiaIoni Bowcher NEGOTIATION
Emily WhobreyUnited KingdomXuxue Feng PROPOSAL
Cody SaylorsArgentinaStephen Shaw PROPOSAL
Julie StensethItalyElwin Sharvill PROPOSAL
Kadeem FlosiItalyIoni Bowcher NEGOTIATION
Jefferson SchemmerGermanyXuxue Feng PROPOSAL
Mujtaba NickaBrazilBernardo Dominic NEGOTIATION
Maisha RulapaughItalyElwin Sharvill PROPOSAL
Smith GlickSpainOnyama Limba NEW
Juan WieserArgentinaBernardo Dominic QUALIFIED
Salvatore StockhamBrazilXuxue Feng NEGOTIATION
Izzy GarufiItalyElwin Sharvill PROPOSAL
Aditya KuskoSpainStephen Shaw RENEWAL
Alejandro PerinJapanElwin Sharvill NEW
Alejandro PerinJapanXuxue Feng NEGOTIATION
Deepesh ChuiSpainBernardo Dominic QUALIFIED
Emily WhobreyItalyXuxue Feng QUALIFIED
Antonio CaudyGermanyOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Jennifer AmigonArgentinaAnna Fali UNQUALIFIED
Leja CaldareraJapanAnna Fali UNQUALIFIED
Izzy GarufiIndiaBernardo Dominic PROPOSAL
Maisha RulapaughIndiaIoni Bowcher PROPOSAL
Maria MarrierArgentinaBernardo Dominic PROPOSAL
Aruna FigeroaItalyOnyama Limba RENEWAL
Costa DilliardRussiaXuxue Feng QUALIFIED
Aika InouyeArgentinaIoni Bowcher QUALIFIED
Alejandro PerinRussiaBernardo Dominic PROPOSAL
Arvin AlbaresJapanAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia MaletIndia2026-04-11Rangoni Of Florence PROPOSAL40Amy Elsner
1001Johnson SergiRussia2026-04-28Printing Dimensions QUALIFIED83Ioni Bowcher
1002Jones VocelkaGermany2026-05-02Dorl, James J Esq UNQUALIFIED34Ioni Bowcher
1003Claire TollnerGermany2026-04-17Feiner Bros UNQUALIFIED93Elwin Sharvill
1004Kadeem FlosiGermany2026-04-06Chanay, Jeffrey A Esq NEGOTIATION27Bernardo Dominic
1005Alejandro PerinSpain2026-05-05Printing Dimensions QUALIFIED12Amy Elsner
1006Maisha RulapaughSpain2026-04-12Feltz Printing Service NEGOTIATION96Anna Fali
1007Adams MorascaUnited Kingdom2026-04-07Chemel, James L Cpa NEW26Ioni Bowcher
1008Cody SaylorsCanada2026-04-17Rousseaux, Michael Esq UNQUALIFIED45Anna Fali
1009Isabel BowleyUnited Kingdom2026-04-28Feiner Bros QUALIFIED95Xuxue Feng
1010Stacey MacleadJapan2026-04-09Chemel, James L Cpa NEW64Ioni Bowcher
1011Smith GlickGermany2026-05-05Feiner Bros NEW49Bernardo Dominic
1012Adams MorascaItaly2026-04-09Rangoni Of Florence PROPOSAL93Onyama Limba
1013Kaitlin OstroskyAustralia2026-04-07Rousseaux, Michael Esq PROPOSAL65Bernardo Dominic
1014Chavez BriddickUnited Kingdom2026-05-03Chapman, Ross E Esq NEGOTIATION66Bernardo Dominic
1015Aditya KuskoJapan2026-04-09Printing Dimensions NEGOTIATION3Stephen Shaw
1016Smith GlickJapan2026-04-23Rangoni Of Florence NEW98Xuxue Feng
1017Costa DilliardUnited Kingdom2026-04-17Feltz Printing Service UNQUALIFIED80Ivan Magalhaes
1018Maisha RulapaughRussia2026-05-04Dorl, James J Esq PROPOSAL92Xuxue Feng
1019Johnson SergiJapan2026-05-03Rousseaux, Michael Esq QUALIFIED87Ioni Bowcher
1020Mayumi KolmetzArgentina2026-04-25King, Christopher A Esq NEW23Stephen Shaw
1021Costa DilliardBrazil2026-04-25King, Christopher A Esq RENEWAL15Onyama Limba
1022Mujtaba NickaGermany2026-04-18King, Christopher A Esq RENEWAL41Amy Elsner
1023Darci PoquetteUnited Kingdom2026-04-07King, Christopher A Esq NEGOTIATION16Ioni Bowcher
1024Cody SaylorsArgentina2026-04-28Commercial Press QUALIFIED69Asiya Javayant
1025Stacey MacleadRussia2026-04-22Feiner Bros NEW57Amy Elsner
1026Isabel BowleyFrance2026-04-10Truhlar And Truhlar Attys RENEWAL0Stephen Shaw
1027Francesco ShinkoCanada2026-04-06Chanay, Jeffrey A Esq NEGOTIATION97Ioni Bowcher
1028Claire TollnerUnited Kingdom2026-04-11Feltz Printing Service QUALIFIED88Anna Fali
1029Emily WhobreyJapan2026-05-04Commercial Press QUALIFIED17Onyama Limba
1030Maria MarrierJapan2026-04-13Rousseaux, Michael Esq NEW66Ioni Bowcher
1031Ricardo GauchoFrance2026-05-05Chapman, Ross E Esq UNQUALIFIED20Ivan Magalhaes
1032Nicolas IturbideArgentina2026-05-01Feltz Printing Service NEGOTIATION84Ivan Magalhaes
1033Jeanfrancois VenereCanada2026-05-01Truhlar And Truhlar Attys RENEWAL53Stephen Shaw
1034Izzy GarufiArgentina2026-04-23Chemel, James L Cpa QUALIFIED34Bernardo Dominic
1035David DarakjyItaly2026-04-29Truhlar And Truhlar Attys PROPOSAL22Xuxue Feng
1036Jones VocelkaBrazil2026-04-26Printing Dimensions QUALIFIED34Ivan Magalhaes
1037Darci PoquetteSpain2026-05-01Commercial Press NEGOTIATION93Xuxue Feng
1038Costa DilliardArgentina2026-04-16King, Christopher A Esq NEGOTIATION85Anna Fali
1039Maria MarrierSpain2026-04-28Morlong Associates RENEWAL75Anna Fali
1040Ricardo GauchoFrance2026-04-22Chapman, Ross E Esq NEGOTIATION3Anna Fali
1041Aruna FigeroaUnited Kingdom2026-04-30Rangoni Of Florence UNQUALIFIED95Amy Elsner
1042Chavez BriddickIndia2026-04-23Benton, John B Jr NEW38Stephen Shaw
1043Izzy GarufiSpain2026-05-01Feiner Bros RENEWAL49Asiya Javayant
1044Leja CaldareraJapan2026-04-06Benton, John B Jr QUALIFIED30Anna Fali
1045Silvio SlusarskiAustralia2026-04-22Buckley Miller Wright PROPOSAL48Onyama Limba
1046Morrow RutaArgentina2026-04-15Chapman, Ross E Esq UNQUALIFIED55Anna Fali
1047Francesco ShinkoJapan2026-05-01Feiner Bros PROPOSAL55Onyama Limba
1048Octavia MaletCanada2026-04-17Benton, John B Jr QUALIFIED58Xuxue Feng
1049Octavia MaletAustralia2026-04-10Feiner Bros PROPOSAL99Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Emily WhobreyItalyStephen Shaw PROPOSAL
Cody SaylorsJapanAmy Elsner RENEWAL
Wickens NestleIndiaXuxue Feng NEW
Arvin AlbaresCanadaElwin Sharvill UNQUALIFIED
Maisha RulapaughJapanIvan Magalhaes QUALIFIED
Jones VocelkaArgentinaOnyama Limba NEGOTIATION
Kaitlin OstroskyJapanBernardo Dominic RENEWAL
Kaitlin OstroskyBrazilElwin Sharvill UNQUALIFIED
Emily WhobreyBrazilAnna Fali RENEWAL
Stacey MacleadFranceElwin Sharvill PROPOSAL
Greenwood BologniaRussiaOnyama Limba NEGOTIATION
Izzy GarufiBrazilAmy Elsner NEW
Jones VocelkaGermanyAmy Elsner UNQUALIFIED
Octavia MaletArgentinaXuxue Feng PROPOSAL
Adams MorascaUnited KingdomOnyama Limba QUALIFIED
Greenwood BologniaIndiaOnyama Limba PROPOSAL
Juan WieserSpainStephen Shaw PROPOSAL
Adams MorascaBrazilAmy Elsner UNQUALIFIED
Stacey MacleadUnited KingdomXuxue Feng QUALIFIED
Juan WieserBrazilIvan Magalhaes RENEWAL
Johnson SergiBrazilAnna Fali UNQUALIFIED
Arvin AlbaresIndiaAsiya Javayant PROPOSAL
Mujtaba NickaGermanyAsiya Javayant PROPOSAL
Wickens NestleIndiaElwin Sharvill QUALIFIED
Aruna FigeroaBrazilAmy Elsner NEGOTIATION
Jones VocelkaSpainElwin Sharvill RENEWAL
Rodrigues CampainItalyAnna Fali QUALIFIED
Nicolas IturbideArgentinaAsiya Javayant UNQUALIFIED
Salvatore StockhamItalyElwin Sharvill RENEWAL
Smith GlickAustraliaElwin Sharvill QUALIFIED
Stacey MacleadFranceAmy Elsner RENEWAL
Smith GlickSpainIvan Magalhaes PROPOSAL
Rodrigues CampainJapanElwin Sharvill QUALIFIED
Sinclair WaycottGermanyXuxue Feng QUALIFIED
Izzy GarufiRussiaBernardo Dominic NEW
Greenwood BologniaIndiaIoni Bowcher RENEWAL
Darci PoquetteRussiaIvan Magalhaes NEW
Smith GlickBrazilOnyama Limba UNQUALIFIED
Antonio CaudyItalyIvan Magalhaes NEW
Tony FollerGermanyBernardo Dominic PROPOSAL
Jones VocelkaUnited KingdomOnyama Limba QUALIFIED
Adams MorascaJapanXuxue Feng NEW
James ButtFranceElwin Sharvill PROPOSAL
Maisha RulapaughArgentinaOnyama Limba PROPOSAL
Jones VocelkaGermanyBernardo Dominic RENEWAL
Wickens NestleIndiaAsiya Javayant PROPOSAL
Johnson SergiUnited KingdomXuxue Feng UNQUALIFIED
Faith GillianIndiaAsiya Javayant PROPOSAL
Deepesh ChuiCanadaElwin Sharvill UNQUALIFIED
Antonio CaudyGermanyAmy Elsner QUALIFIED
Frozen Columns
Name
Juan Wieser
Alejandro Perin
David Darakjy
Munro Ferencz
Alejandro Perin
Mujtaba Nicka
Stacey Maclead
Mayumi Kolmetz
Munro Ferencz
Cody Saylors
Salvatore Stockham
Murillo Malet
Murillo Malet
Jennifer Amigon
Mujtaba Nicka
Johnson Sergi
Rodrigues Campain
Aika Inouye
Munro Ferencz
Costa Dilliard
Alejandro Perin
Jones Vocelka
Aditya Kusko
James Butt
Munro Ferencz
Clifford Rim
James Butt
Johnson Sergi
Ivar Paprocki
Silvio Slusarski
Aruna Figeroa
Kaitlin Ostrosky
Isabel Bowley
Rodrigues Campain
Nicolas Iturbide
Johnson Sergi
Morrow Ruta
Johnson Sergi
Morrow Ruta
Arvin Albares
Alejandro Perin
Kaitlin Ostrosky
Isabel Bowley
Maisha Rulapaugh
Morrow Ruta
Nicolas Iturbide
Ashley Doe
Morrow Ruta
Arvin Albares
Murillo Malet
IdCountryDate
1000Germany2026-04-07
1001Germany2026-04-19
1002Spain2026-04-10
1003Spain2026-04-24
1004Japan2026-04-20
1005Australia2026-04-24
1006Spain2026-04-16
1007Spain2026-04-11
1008Japan2026-04-22
1009Brazil2026-04-09
1010Spain2026-04-11
1011Spain2026-04-20
1012Italy2026-04-23
1013Russia2026-05-03
1014Japan2026-04-24
1015Brazil2026-04-16
1016Japan2026-05-03
1017Argentina2026-04-23
1018India2026-04-08
1019Argentina2026-04-07
1020Germany2026-05-01
1021Canada2026-04-30
1022Canada2026-04-30
1023Spain2026-04-13
1024Japan2026-04-20
1025United Kingdom2026-04-07
1026Argentina2026-04-16
1027Russia2026-04-26
1028Spain2026-05-02
1029India2026-04-06
1030Argentina2026-04-29
1031Australia2026-05-03
1032Australia2026-04-23
1033India2026-04-07
1034Russia2026-04-07
1035Germany2026-05-01
1036Spain2026-04-12
1037Russia2026-04-09
1038Canada2026-04-19
1039Argentina2026-04-24
1040Germany2026-05-01
1041Argentina2026-04-18
1042Japan2026-04-29
1043Argentina2026-04-13
1044France2026-04-07
1045Russia2026-04-28
1046Japan2026-04-06
1047Canada2026-04-11
1048Australia2026-04-21
1049Canada2026-04-18

On-Demand Data

NameIdCountryDate
Julie Stenseth1000United Kingdom2026-04-23
Ivar Paprocki1001Brazil2026-05-04
Aditya Kusko1002India2026-04-26
Adams Morasca1003Japan2026-04-25
Francesco Shinko1004Brazil2026-04-14
Ricardo Gaucho1005Australia2026-04-11
Munro Ferencz1006Germany2026-04-25
Salvatore Stockham1007Argentina2026-04-09
Jeanfrancois Venere1008Australia2026-04-17
Sinclair Waycott1009Russia2026-04-17
Maria Marrier1010Brazil2026-04-29
Juan Wieser1011Argentina2026-04-23
Cody Saylors1012India2026-04-07
Murillo Malet1013Australia2026-05-01
Antonio Caudy1014United Kingdom2026-04-13
Arvin Albares1015Japan2026-04-14
Tony Foller1016Germany2026-04-17
Morrow Ruta1017Italy2026-04-16
Smith Glick1018Germany2026-05-05
Wickens Nestle1019United Kingdom2026-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Octavia MaletBrazilIoni Bowcher UNQUALIFIED
Ashley DoeAustraliaAsiya Javayant UNQUALIFIED
Rodrigues CampainAustraliaAnna Fali NEW
Chavez BriddickSpainIvan Magalhaes PROPOSAL
Octavia MaletAustraliaXuxue Feng NEGOTIATION
Salvatore StockhamItalyAsiya Javayant RENEWAL
Aruna FigeroaBrazilStephen Shaw RENEWAL
David DarakjyUnited KingdomXuxue Feng NEGOTIATION
Maria MarrierGermanyXuxue Feng NEGOTIATION
Faith GillianSpainAnna Fali QUALIFIED
Leon OldroydUnited KingdomIvan Magalhaes UNQUALIFIED
Maria MarrierAustraliaIvan Magalhaes UNQUALIFIED
Alejandro PerinSpainXuxue Feng PROPOSAL
Wickens NestleJapanXuxue Feng NEW
Tony FollerIndiaXuxue Feng NEGOTIATION
Costa DilliardCanadaAsiya Javayant RENEWAL
Ivar PaprockiRussiaAmy Elsner PROPOSAL
Jennifer AmigonGermanyElwin Sharvill UNQUALIFIED
Octavia MaletCanadaAsiya Javayant NEW
Tony FollerGermanyIoni Bowcher RENEWAL
Arvin AlbaresFranceAnna Fali RENEWAL
Julie StensethIndiaAnna Fali PROPOSAL
David DarakjyGermanyIoni Bowcher UNQUALIFIED
Chavez BriddickUnited KingdomIvan Magalhaes UNQUALIFIED
Izzy GarufiCanadaIoni Bowcher NEW
Alejandro PerinUnited KingdomIoni Bowcher QUALIFIED
Maisha RulapaughIndiaAsiya Javayant UNQUALIFIED
Mujtaba NickaAustraliaOnyama Limba RENEWAL
Mayumi KolmetzAustraliaElwin Sharvill UNQUALIFIED
Antonio CaudyBrazilXuxue Feng NEGOTIATION
Greenwood BologniaSpainAmy Elsner UNQUALIFIED
Stacey MacleadAustraliaOnyama Limba NEGOTIATION
Jeanfrancois VenereIndiaAmy Elsner UNQUALIFIED
Kaitlin OstroskyFranceOnyama Limba UNQUALIFIED
Munro FerenczItalyAnna Fali PROPOSAL
Salvatore StockhamUnited KingdomOnyama Limba QUALIFIED
Leja CaldareraGermanyXuxue Feng PROPOSAL
Costa DilliardUnited KingdomAmy Elsner QUALIFIED
Aika InouyeRussiaStephen Shaw RENEWAL
Jennifer AmigonSpainIvan Magalhaes 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>