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
Stacey MacleadArgentinaXuxue Feng PROPOSAL
Murillo MaletGermanyBernardo Dominic NEW
Rodrigues CampainGermanyElwin Sharvill NEGOTIATION
James ButtAustraliaBernardo Dominic RENEWAL
Aika InouyeJapanStephen Shaw NEW
Ivar PaprockiSpainIvan Magalhaes NEGOTIATION
Jefferson SchemmerJapanIvan Magalhaes NEW
Mujtaba NickaRussiaIvan Magalhaes UNQUALIFIED
Jones VocelkaIndiaAmy Elsner UNQUALIFIED
Antonio CaudyIndiaIvan Magalhaes RENEWAL
Sinclair WaycottSpainOnyama Limba NEGOTIATION
Julie StensethUnited KingdomElwin Sharvill UNQUALIFIED
Adams MorascaItalyBernardo Dominic RENEWAL
Leon OldroydBrazilIoni Bowcher QUALIFIED
Clifford RimArgentinaIvan Magalhaes QUALIFIED
Smith GlickIndiaIvan Magalhaes NEW
Leon OldroydIndiaIvan Magalhaes NEGOTIATION
Costa DilliardIndiaIvan Magalhaes NEW
Alejandro PerinFranceAmy Elsner QUALIFIED
Aruna FigeroaSpainAnna Fali PROPOSAL
Aditya KuskoBrazilStephen Shaw UNQUALIFIED
Mayumi KolmetzGermanyIvan Magalhaes NEGOTIATION
Aruna FigeroaRussiaBernardo Dominic NEW
Kaitlin OstroskyRussiaXuxue Feng NEGOTIATION
David DarakjyUnited KingdomStephen Shaw RENEWAL
Julie StensethItalyAmy Elsner RENEWAL
Julie StensethCanadaBernardo Dominic QUALIFIED
Ricardo GauchoCanadaIoni Bowcher NEW
Silvio SlusarskiSpainStephen Shaw PROPOSAL
Johnson SergiItalyXuxue Feng RENEWAL
Chavez BriddickIndiaIoni Bowcher UNQUALIFIED
Juan WieserArgentinaXuxue Feng NEW
Francesco ShinkoSpainIoni Bowcher NEW
Darci PoquetteJapanOnyama Limba RENEWAL
Izzy GarufiUnited KingdomStephen Shaw RENEWAL
Kaitlin OstroskyAustraliaElwin Sharvill RENEWAL
Costa DilliardCanadaElwin Sharvill NEW
James ButtCanadaIvan Magalhaes NEGOTIATION
Jefferson SchemmerFranceBernardo Dominic RENEWAL
Chavez BriddickAustraliaStephen Shaw PROPOSAL
Tony FollerSpainStephen Shaw NEW
Faith GillianIndiaIvan Magalhaes NEW
Leja CaldareraUnited KingdomIvan Magalhaes PROPOSAL
Morrow RutaJapanAnna Fali NEGOTIATION
Juan WieserUnited KingdomAmy Elsner PROPOSAL
Octavia MaletAustraliaIoni Bowcher RENEWAL
Nicolas IturbideAustraliaElwin Sharvill UNQUALIFIED
Salvatore StockhamUnited KingdomStephen Shaw NEGOTIATION
Kaitlin OstroskyCanadaStephen Shaw RENEWAL
Jones VocelkaCanadaElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kadeem FlosiItalyBernardo Dominic PROPOSAL
Mayumi KolmetzAustraliaStephen Shaw QUALIFIED
Wickens NestleFranceBernardo Dominic UNQUALIFIED
Murillo MaletRussiaAsiya Javayant NEW
Adams MorascaItalyAsiya Javayant QUALIFIED
Maisha RulapaughUnited KingdomIvan Magalhaes NEGOTIATION
Mujtaba NickaIndiaAmy Elsner PROPOSAL
Ricardo GauchoItalyStephen Shaw RENEWAL
Faith GillianItalyIvan Magalhaes PROPOSAL
Alejandro PerinArgentinaIoni Bowcher PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy GarufiGermany2026-04-24Benton, John B Jr UNQUALIFIED74Stephen Shaw
1001Octavia MaletGermany2026-05-05Chanay, Jeffrey A Esq QUALIFIED30Xuxue Feng
1002Darci PoquetteItaly2026-04-16Rangoni Of Florence PROPOSAL62Anna Fali
1003Jefferson SchemmerBrazil2026-04-14Benton, John B Jr QUALIFIED11Bernardo Dominic
1004Juan WieserBrazil2026-04-16Benton, John B Jr QUALIFIED45Stephen Shaw
1005Johnson SergiCanada2026-04-11Benton, John B Jr NEGOTIATION94Elwin Sharvill
1006Kadeem FlosiUnited Kingdom2026-04-16Printing Dimensions RENEWAL26Xuxue Feng
1007Stacey MacleadSpain2026-04-13Benton, John B Jr RENEWAL48Asiya Javayant
1008Alejandro PerinSpain2026-04-29Commercial Press RENEWAL0Amy Elsner
1009Alejandro PerinIndia2026-05-02Chanay, Jeffrey A Esq UNQUALIFIED95Ivan Magalhaes
1010Aika InouyeBrazil2026-04-30King, Christopher A Esq QUALIFIED59Xuxue Feng
1011Jones VocelkaAustralia2026-05-04Chapman, Ross E Esq QUALIFIED47Amy Elsner
1012Alejandro PerinUnited Kingdom2026-04-24Chapman, Ross E Esq NEW46Elwin Sharvill
1013Julie StensethRussia2026-04-17Rousseaux, Michael Esq PROPOSAL66Ivan Magalhaes
1014Ashley DoeBrazil2026-04-21Rangoni Of Florence QUALIFIED60Ioni Bowcher
1015Morrow RutaJapan2026-04-12Feltz Printing Service NEW58Bernardo Dominic
1016Aika InouyeUnited Kingdom2026-04-26Benton, John B Jr QUALIFIED36Ivan Magalhaes
1017Izzy GarufiCanada2026-04-21Chapman, Ross E Esq PROPOSAL16Anna Fali
1018Wickens NestleCanada2026-05-06Benton, John B Jr UNQUALIFIED87Ioni Bowcher
1019Sinclair WaycottRussia2026-04-22Buckley Miller Wright RENEWAL47Asiya Javayant
1020Kaitlin OstroskyCanada2026-04-22Rangoni Of Florence QUALIFIED24Stephen Shaw
1021Smith GlickGermany2026-04-17Commercial Press RENEWAL22Onyama Limba
1022Mayumi KolmetzGermany2026-04-12Feltz Printing Service UNQUALIFIED40Asiya Javayant
1023Silvio SlusarskiGermany2026-04-25Chemel, James L Cpa RENEWAL99Bernardo Dominic
1024Leja CaldareraIndia2026-04-27Feltz Printing Service QUALIFIED70Stephen Shaw
1025Izzy GarufiIndia2026-04-19Commercial Press UNQUALIFIED15Asiya Javayant
1026Ivar PaprockiFrance2026-05-04Commercial Press QUALIFIED12Onyama Limba
1027Kadeem FlosiFrance2026-04-18King, Christopher A Esq QUALIFIED72Stephen Shaw
1028Nicolas IturbideBrazil2026-04-14Chemel, James L Cpa UNQUALIFIED89Onyama Limba
1029Octavia MaletJapan2026-04-24Feltz Printing Service UNQUALIFIED89Amy Elsner
1030Juan WieserItaly2026-05-01Feiner Bros RENEWAL44Onyama Limba
1031Cody SaylorsRussia2026-05-07Feiner Bros UNQUALIFIED39Anna Fali
1032Octavia MaletGermany2026-05-02Feiner Bros NEW8Ivan Magalhaes
1033Mujtaba NickaBrazil2026-05-05Morlong Associates NEW55Onyama Limba
1034Johnson SergiGermany2026-05-08Benton, John B Jr NEGOTIATION62Bernardo Dominic
1035Emily WhobreyArgentina2026-05-06Dorl, James J Esq NEW4Anna Fali
1036Salvatore StockhamItaly2026-04-13Truhlar And Truhlar Attys NEW2Asiya Javayant
1037Aditya KuskoRussia2026-04-14Rousseaux, Michael Esq PROPOSAL84Stephen Shaw
1038Misaki RoysterFrance2026-05-07Truhlar And Truhlar Attys PROPOSAL47Anna Fali
1039Darci PoquetteCanada2026-04-30Feiner Bros UNQUALIFIED83Bernardo Dominic
1040Ashley DoeIndia2026-04-28Morlong Associates NEGOTIATION37Xuxue Feng
1041Maria MarrierFrance2026-04-28Commercial Press UNQUALIFIED75Xuxue Feng
1042Ashley DoeJapan2026-04-12Buckley Miller Wright NEW51Elwin Sharvill
1043Morrow RutaUnited Kingdom2026-04-19Buckley Miller Wright RENEWAL65Stephen Shaw
1044Jefferson SchemmerBrazil2026-04-15Feiner Bros NEGOTIATION64Onyama Limba
1045Claire TollnerGermany2026-05-01Chemel, James L Cpa UNQUALIFIED97Onyama Limba
1046Antonio CaudyRussia2026-04-13Rousseaux, Michael Esq NEW13Xuxue Feng
1047Ashley DoeFrance2026-04-30Dorl, James J Esq RENEWAL1Anna Fali
1048Silvio SlusarskiRussia2026-05-06King, Christopher A Esq UNQUALIFIED70Amy Elsner
1049James ButtCanada2026-05-01Truhlar And Truhlar Attys PROPOSAL89Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Morrow RutaFranceOnyama Limba UNQUALIFIED
Emily WhobreyIndiaXuxue Feng RENEWAL
Mayumi KolmetzIndiaXuxue Feng NEGOTIATION
Jones VocelkaCanadaStephen Shaw PROPOSAL
Jennifer AmigonGermanyAsiya Javayant NEGOTIATION
Izzy GarufiIndiaStephen Shaw NEGOTIATION
Aruna FigeroaIndiaOnyama Limba QUALIFIED
Darci PoquetteAustraliaBernardo Dominic RENEWAL
Ivar PaprockiSpainAsiya Javayant UNQUALIFIED
Izzy GarufiIndiaElwin Sharvill RENEWAL
Chavez BriddickAustraliaAmy Elsner QUALIFIED
Sinclair WaycottJapanXuxue Feng NEGOTIATION
Kaitlin OstroskyAustraliaAsiya Javayant NEW
Jeanfrancois VenereBrazilElwin Sharvill PROPOSAL
Jefferson SchemmerItalyXuxue Feng NEGOTIATION
Faith GillianGermanyBernardo Dominic UNQUALIFIED
Leon OldroydUnited KingdomAmy Elsner NEW
Salvatore StockhamJapanOnyama Limba UNQUALIFIED
James ButtBrazilAmy Elsner NEW
Misaki RoysterJapanIvan Magalhaes UNQUALIFIED
Maisha RulapaughBrazilStephen Shaw NEW
Francesco ShinkoIndiaIvan Magalhaes PROPOSAL
Ivar PaprockiSpainAsiya Javayant RENEWAL
Ashley DoeRussiaIvan Magalhaes NEGOTIATION
Leon OldroydUnited KingdomIvan Magalhaes RENEWAL
Smith GlickGermanyXuxue Feng NEW
Faith GillianUnited KingdomBernardo Dominic UNQUALIFIED
Deepesh ChuiBrazilIoni Bowcher RENEWAL
Francesco ShinkoUnited KingdomAsiya Javayant RENEWAL
Misaki RoysterSpainBernardo Dominic UNQUALIFIED
Leon OldroydRussiaStephen Shaw RENEWAL
Kaitlin OstroskyBrazilIvan Magalhaes UNQUALIFIED
Alejandro PerinCanadaXuxue Feng NEW
Greenwood BologniaSpainXuxue Feng RENEWAL
Alejandro PerinGermanyXuxue Feng QUALIFIED
Murillo MaletUnited KingdomStephen Shaw PROPOSAL
Wickens NestleAustraliaElwin Sharvill NEW
Maria MarrierFranceIoni Bowcher UNQUALIFIED
Emily WhobreyGermanyIoni Bowcher NEGOTIATION
Johnson SergiArgentinaAsiya Javayant RENEWAL
Arvin AlbaresJapanElwin Sharvill NEGOTIATION
Smith GlickItalyAmy Elsner NEW
Julie StensethIndiaAnna Fali PROPOSAL
Jeanfrancois VenereArgentinaAmy Elsner RENEWAL
Alejandro PerinArgentinaBernardo Dominic NEW
Morrow RutaArgentinaAsiya Javayant NEW
Cody SaylorsArgentinaElwin Sharvill PROPOSAL
Leon OldroydBrazilAmy Elsner NEGOTIATION
Wickens NestleAustraliaXuxue Feng UNQUALIFIED
Aruna FigeroaFranceBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Deepesh Chui
Aditya Kusko
Smith Glick
Jones Vocelka
Kaitlin Ostrosky
Clifford Rim
Isabel Bowley
Julie Stenseth
Smith Glick
Salvatore Stockham
Greenwood Bolognia
Wickens Nestle
Greenwood Bolognia
Maria Marrier
Munro Ferencz
Salvatore Stockham
Arvin Albares
Ashley Doe
Juan Wieser
Jeanfrancois Venere
Arvin Albares
Isabel Bowley
Chavez Briddick
Smith Glick
Kadeem Flosi
Antonio Caudy
Aika Inouye
Wickens Nestle
Alejandro Perin
Salvatore Stockham
Ricardo Gaucho
Arvin Albares
Sinclair Waycott
Costa Dilliard
Ricardo Gaucho
Jones Vocelka
Aruna Figeroa
Wickens Nestle
Antonio Caudy
Jones Vocelka
Stacey Maclead
Salvatore Stockham
David Darakjy
Claire Tollner
Kadeem Flosi
Jeanfrancois Venere
Claire Tollner
Morrow Ruta
Arvin Albares
Johnson Sergi
IdCountryDate
1000Germany2026-04-28
1001Spain2026-04-13
1002Canada2026-05-02
1003Argentina2026-04-21
1004Australia2026-04-16
1005Russia2026-04-14
1006United Kingdom2026-04-26
1007Australia2026-04-15
1008Brazil2026-04-25
1009Russia2026-04-11
1010France2026-05-07
1011United Kingdom2026-04-28
1012Argentina2026-04-13
1013Russia2026-04-13
1014Italy2026-04-25
1015India2026-04-25
1016Italy2026-04-12
1017Italy2026-04-28
1018Argentina2026-05-01
1019Brazil2026-05-02
1020Argentina2026-04-21
1021France2026-05-08
1022Italy2026-04-16
1023Brazil2026-05-03
1024Italy2026-05-06
1025Argentina2026-04-30
1026Germany2026-04-22
1027United Kingdom2026-04-12
1028France2026-05-06
1029Italy2026-04-12
1030India2026-04-27
1031India2026-05-10
1032India2026-04-21
1033United Kingdom2026-04-29
1034Japan2026-05-04
1035Spain2026-04-30
1036Italy2026-05-03
1037Spain2026-04-12
1038Brazil2026-05-05
1039France2026-05-06
1040India2026-04-19
1041Brazil2026-05-01
1042United Kingdom2026-05-05
1043United Kingdom2026-04-26
1044Italy2026-04-18
1045Australia2026-04-14
1046Spain2026-04-21
1047Russia2026-04-29
1048Russia2026-04-16
1049Canada2026-04-22

On-Demand Data

NameIdCountryDate
Aruna Figeroa1000Spain2026-04-23
Isabel Bowley1001United Kingdom2026-05-04
Aruna Figeroa1002Russia2026-04-12
Kadeem Flosi1003France2026-05-01
Faith Gillian1004Russia2026-04-13
Faith Gillian1005Spain2026-04-14
Maisha Rulapaugh1006India2026-04-13
Jefferson Schemmer1007France2026-05-10
Adams Morasca1008India2026-04-23
Wickens Nestle1009Brazil2026-05-02
James Butt1010France2026-05-07
Jennifer Amigon1011Japan2026-04-28
Juan Wieser1012Germany2026-05-01
Deepesh Chui1013Russia2026-05-10
Maria Marrier1014Russia2026-04-23
James Butt1015Canada2026-04-21
Octavia Malet1016France2026-04-24
Jennifer Amigon1017India2026-04-29
Nicolas Iturbide1018Japan2026-04-29
Cody Saylors1019Australia2026-05-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja CaldareraArgentinaBernardo Dominic NEW
Kadeem FlosiBrazilAsiya Javayant QUALIFIED
Misaki RoysterIndiaStephen Shaw NEW
Sinclair WaycottIndiaXuxue Feng NEGOTIATION
Salvatore StockhamIndiaOnyama Limba NEGOTIATION
Chavez BriddickArgentinaAnna Fali PROPOSAL
Antonio CaudyRussiaXuxue Feng UNQUALIFIED
David DarakjyArgentinaAsiya Javayant QUALIFIED
Alejandro PerinArgentinaXuxue Feng NEW
Isabel BowleyUnited KingdomBernardo Dominic RENEWAL
Jeanfrancois VenereUnited KingdomAnna Fali PROPOSAL
Wickens NestleAustraliaBernardo Dominic PROPOSAL
Cody SaylorsBrazilOnyama Limba RENEWAL
Smith GlickItalyXuxue Feng PROPOSAL
Faith GillianSpainAmy Elsner QUALIFIED
Jennifer AmigonJapanBernardo Dominic PROPOSAL
Aika InouyeAustraliaAmy Elsner UNQUALIFIED
Misaki RoysterIndiaBernardo Dominic NEGOTIATION
Jennifer AmigonArgentinaIvan Magalhaes RENEWAL
Octavia MaletCanadaXuxue Feng QUALIFIED
Misaki RoysterRussiaBernardo Dominic PROPOSAL
Stacey MacleadUnited KingdomAmy Elsner NEW
Tony FollerItalyElwin Sharvill PROPOSAL
Greenwood BologniaAustraliaAnna Fali QUALIFIED
Murillo MaletArgentinaStephen Shaw PROPOSAL
Tony FollerItalyXuxue Feng NEW
Ivar PaprockiGermanyElwin Sharvill RENEWAL
Clifford RimCanadaIoni Bowcher RENEWAL
Francesco ShinkoRussiaAnna Fali RENEWAL
Leja CaldareraArgentinaStephen Shaw UNQUALIFIED
Isabel BowleyItalyStephen Shaw RENEWAL
Kadeem FlosiCanadaStephen Shaw NEW
Kaitlin OstroskyAustraliaIvan Magalhaes UNQUALIFIED
Antonio CaudySpainIvan Magalhaes UNQUALIFIED
Leja CaldareraGermanyAsiya Javayant RENEWAL
Aditya KuskoCanadaOnyama Limba PROPOSAL
Ricardo GauchoIndiaOnyama Limba UNQUALIFIED
Costa DilliardJapanBernardo Dominic RENEWAL
Johnson SergiAustraliaIoni Bowcher NEW
Smith GlickSpainAsiya Javayant QUALIFIED

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