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
Aika InouyeSpainStephen Shaw NEGOTIATION
Octavia MaletAustraliaOnyama Limba NEGOTIATION
Octavia MaletArgentinaIoni Bowcher NEW
Arvin AlbaresCanadaBernardo Dominic RENEWAL
Adams MorascaSpainAnna Fali RENEWAL
Deepesh ChuiFranceOnyama Limba NEGOTIATION
Jennifer AmigonSpainAnna Fali RENEWAL
Clifford RimAustraliaAsiya Javayant NEGOTIATION
Isabel BowleyAustraliaIvan Magalhaes NEGOTIATION
Arvin AlbaresUnited KingdomIoni Bowcher RENEWAL
Johnson SergiJapanAnna Fali NEGOTIATION
Octavia MaletUnited KingdomStephen Shaw NEW
Costa DilliardUnited KingdomStephen Shaw NEGOTIATION
Cody SaylorsBrazilIvan Magalhaes RENEWAL
Adams MorascaCanadaOnyama Limba PROPOSAL
James ButtBrazilBernardo Dominic RENEWAL
Darci PoquetteAustraliaAsiya Javayant PROPOSAL
Leon OldroydArgentinaIvan Magalhaes PROPOSAL
James ButtIndiaAsiya Javayant QUALIFIED
Emily WhobreyRussiaIvan Magalhaes RENEWAL
Johnson SergiGermanyElwin Sharvill NEW
Leja CaldareraJapanAnna Fali UNQUALIFIED
Alejandro PerinAustraliaStephen Shaw RENEWAL
Tony FollerSpainXuxue Feng PROPOSAL
Wickens NestleGermanyIvan Magalhaes NEGOTIATION
Francesco ShinkoBrazilAsiya Javayant UNQUALIFIED
Octavia MaletSpainAsiya Javayant UNQUALIFIED
Smith GlickSpainIoni Bowcher UNQUALIFIED
Maria MarrierCanadaIvan Magalhaes NEW
Arvin AlbaresArgentinaAmy Elsner QUALIFIED
Deepesh ChuiGermanyIoni Bowcher PROPOSAL
Adams MorascaSpainStephen Shaw QUALIFIED
Misaki RoysterGermanyAmy Elsner PROPOSAL
Ivar PaprockiItalyStephen Shaw NEW
Francesco ShinkoItalyStephen Shaw NEW
Leja CaldareraIndiaAsiya Javayant RENEWAL
Salvatore StockhamJapanStephen Shaw NEGOTIATION
Jeanfrancois VenereIndiaStephen Shaw RENEWAL
Izzy GarufiItalyIvan Magalhaes NEW
Kadeem FlosiCanadaElwin Sharvill QUALIFIED
Ashley DoeUnited KingdomXuxue Feng RENEWAL
Darci PoquetteArgentinaIvan Magalhaes PROPOSAL
Nicolas IturbideBrazilStephen Shaw PROPOSAL
Antonio CaudySpainAmy Elsner QUALIFIED
David DarakjyGermanyBernardo Dominic NEGOTIATION
Mujtaba NickaCanadaIvan Magalhaes NEGOTIATION
Leja CaldareraItalyAsiya Javayant UNQUALIFIED
Tony FollerUnited KingdomBernardo Dominic NEW
Mayumi KolmetzUnited KingdomAnna Fali QUALIFIED
Leon OldroydFranceElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Silvio SlusarskiBrazilAmy Elsner QUALIFIED
Julie StensethArgentinaAnna Fali UNQUALIFIED
Faith GillianArgentinaAnna Fali RENEWAL
Arvin AlbaresCanadaXuxue Feng NEW
Maria MarrierFranceIoni Bowcher NEW
Deepesh ChuiRussiaBernardo Dominic RENEWAL
Mayumi KolmetzArgentinaAnna Fali PROPOSAL
Salvatore StockhamJapanIoni Bowcher NEW
Morrow RutaSpainOnyama Limba RENEWAL
Octavia MaletCanadaStephen Shaw RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Wickens NestleSpain2026-06-03Truhlar And Truhlar Attys NEGOTIATION76Amy Elsner
1001Alejandro PerinBrazil2026-05-18Rousseaux, Michael Esq NEW68Bernardo Dominic
1002Deepesh ChuiUnited Kingdom2026-05-29Buckley Miller Wright QUALIFIED20Amy Elsner
1003Francesco ShinkoJapan2026-06-11Truhlar And Truhlar Attys PROPOSAL11Ioni Bowcher
1004Mayumi KolmetzRussia2026-06-09Rousseaux, Michael Esq QUALIFIED19Stephen Shaw
1005Kaitlin OstroskyArgentina2026-05-20King, Christopher A Esq RENEWAL38Ioni Bowcher
1006Misaki RoysterBrazil2026-05-23Chapman, Ross E Esq PROPOSAL96Onyama Limba
1007Kadeem FlosiAustralia2026-06-06Feiner Bros PROPOSAL91Stephen Shaw
1008Julie StensethBrazil2026-06-07Truhlar And Truhlar Attys NEW65Asiya Javayant
1009Ashley DoeGermany2026-05-18Truhlar And Truhlar Attys PROPOSAL8Asiya Javayant
1010Cody SaylorsSpain2026-05-25Chemel, James L Cpa NEGOTIATION79Stephen Shaw
1011Adams MorascaArgentina2026-05-20Printing Dimensions NEW7Ioni Bowcher
1012Jefferson SchemmerJapan2026-06-13Chemel, James L Cpa NEGOTIATION31Xuxue Feng
1013Leja CaldareraSpain2026-05-27Chemel, James L Cpa UNQUALIFIED20Ivan Magalhaes
1014Izzy GarufiAustralia2026-05-18King, Christopher A Esq QUALIFIED54Bernardo Dominic
1015Kaitlin OstroskyArgentina2026-05-19Feltz Printing Service RENEWAL85Anna Fali
1016Kadeem FlosiIndia2026-06-15Morlong Associates UNQUALIFIED31Xuxue Feng
1017Mayumi KolmetzBrazil2026-06-07Feiner Bros PROPOSAL76Onyama Limba
1018Ivar PaprockiUnited Kingdom2026-05-18Chapman, Ross E Esq NEGOTIATION87Elwin Sharvill
1019Jennifer AmigonUnited Kingdom2026-06-07Benton, John B Jr NEGOTIATION35Xuxue Feng
1020Rodrigues CampainSpain2026-06-14Feltz Printing Service QUALIFIED72Stephen Shaw
1021Mujtaba NickaBrazil2026-05-20Commercial Press PROPOSAL67Xuxue Feng
1022Chavez BriddickSpain2026-05-29Commercial Press QUALIFIED2Xuxue Feng
1023Aditya KuskoCanada2026-06-02Rangoni Of Florence NEGOTIATION7Anna Fali
1024Munro FerenczCanada2026-06-09Rangoni Of Florence UNQUALIFIED45Bernardo Dominic
1025Arvin AlbaresAustralia2026-05-17Truhlar And Truhlar Attys PROPOSAL43Anna Fali
1026Adams MorascaGermany2026-05-27Printing Dimensions NEW71Onyama Limba
1027Sinclair WaycottFrance2026-06-05Dorl, James J Esq QUALIFIED51Xuxue Feng
1028Clifford RimIndia2026-06-04Rousseaux, Michael Esq NEGOTIATION59Stephen Shaw
1029Izzy GarufiGermany2026-06-05Chemel, James L Cpa PROPOSAL9Asiya Javayant
1030Costa DilliardGermany2026-05-17Commercial Press NEGOTIATION96Ioni Bowcher
1031Arvin AlbaresJapan2026-06-10Chapman, Ross E Esq NEGOTIATION84Stephen Shaw
1032Johnson SergiUnited Kingdom2026-05-17Chemel, James L Cpa UNQUALIFIED78Asiya Javayant
1033Kadeem FlosiSpain2026-05-23Dorl, James J Esq PROPOSAL56Bernardo Dominic
1034Smith GlickJapan2026-06-07Chanay, Jeffrey A Esq PROPOSAL65Asiya Javayant
1035Mujtaba NickaUnited Kingdom2026-05-18Rousseaux, Michael Esq UNQUALIFIED28Bernardo Dominic
1036Kadeem FlosiRussia2026-06-15Rangoni Of Florence RENEWAL8Onyama Limba
1037Nicolas IturbideUnited Kingdom2026-05-19Feltz Printing Service NEGOTIATION53Ivan Magalhaes
1038Jefferson SchemmerCanada2026-05-19Morlong Associates NEW98Ioni Bowcher
1039Jones VocelkaCanada2026-05-30Rangoni Of Florence PROPOSAL7Onyama Limba
1040Jennifer AmigonJapan2026-06-08Buckley Miller Wright NEGOTIATION15Ivan Magalhaes
1041Julie StensethFrance2026-06-08Rousseaux, Michael Esq NEW7Stephen Shaw
1042Nicolas IturbideGermany2026-05-25Morlong Associates NEGOTIATION84Ioni Bowcher
1043Leja CaldareraRussia2026-05-27Printing Dimensions NEGOTIATION1Xuxue Feng
1044Rodrigues CampainIndia2026-05-25Feiner Bros RENEWAL16Ivan Magalhaes
1045Rodrigues CampainIndia2026-05-17Chapman, Ross E Esq UNQUALIFIED55Anna Fali
1046Chavez BriddickAustralia2026-05-19Chapman, Ross E Esq PROPOSAL75Onyama Limba
1047Aika InouyeGermany2026-05-24Commercial Press QUALIFIED63Xuxue Feng
1048Jefferson SchemmerAustralia2026-05-25Truhlar And Truhlar Attys RENEWAL62Stephen Shaw
1049Arvin AlbaresArgentina2026-06-14Chemel, James L Cpa NEGOTIATION98Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierBrazilStephen Shaw NEW
Julie StensethSpainAnna Fali PROPOSAL
Murillo MaletRussiaAsiya Javayant NEGOTIATION
Kaitlin OstroskyIndiaStephen Shaw RENEWAL
Sinclair WaycottJapanBernardo Dominic NEW
Jefferson SchemmerBrazilStephen Shaw NEGOTIATION
Emily WhobreyItalyStephen Shaw RENEWAL
Antonio CaudyRussiaElwin Sharvill NEW
Jeanfrancois VenereArgentinaAmy Elsner NEW
Smith GlickRussiaAsiya Javayant PROPOSAL
Maria MarrierGermanyAnna Fali RENEWAL
Murillo MaletJapanAnna Fali QUALIFIED
Rodrigues CampainSpainIvan Magalhaes RENEWAL
Morrow RutaCanadaAsiya Javayant RENEWAL
Rodrigues CampainFranceStephen Shaw RENEWAL
Tony FollerCanadaAmy Elsner RENEWAL
Nicolas IturbideArgentinaIvan Magalhaes NEW
Julie StensethJapanOnyama Limba QUALIFIED
Silvio SlusarskiAustraliaBernardo Dominic UNQUALIFIED
Emily WhobreyGermanyBernardo Dominic UNQUALIFIED
Izzy GarufiItalyXuxue Feng NEGOTIATION
Chavez BriddickSpainAmy Elsner RENEWAL
Aruna FigeroaGermanyBernardo Dominic NEGOTIATION
Smith GlickUnited KingdomIoni Bowcher NEGOTIATION
Ashley DoeUnited KingdomStephen Shaw PROPOSAL
Francesco ShinkoArgentinaOnyama Limba NEW
Chavez BriddickArgentinaBernardo Dominic RENEWAL
Johnson SergiBrazilIvan Magalhaes NEGOTIATION
Jennifer AmigonIndiaElwin Sharvill NEW
Chavez BriddickCanadaAmy Elsner RENEWAL
Stacey MacleadJapanOnyama Limba NEW
Johnson SergiFranceIoni Bowcher NEW
Greenwood BologniaFranceAsiya Javayant PROPOSAL
Ivar PaprockiItalyIoni Bowcher RENEWAL
Mayumi KolmetzCanadaAnna Fali QUALIFIED
Sinclair WaycottSpainStephen Shaw PROPOSAL
Ricardo GauchoFranceElwin Sharvill UNQUALIFIED
Sinclair WaycottUnited KingdomAsiya Javayant PROPOSAL
Clifford RimBrazilIvan Magalhaes NEGOTIATION
Francesco ShinkoAustraliaAsiya Javayant NEW
Kaitlin OstroskyJapanElwin Sharvill QUALIFIED
Stacey MacleadArgentinaStephen Shaw RENEWAL
Jeanfrancois VenereIndiaOnyama Limba PROPOSAL
Ashley DoeRussiaIvan Magalhaes NEW
Deepesh ChuiJapanOnyama Limba RENEWAL
Jeanfrancois VenereSpainAmy Elsner NEGOTIATION
David DarakjyCanadaXuxue Feng RENEWAL
Morrow RutaArgentinaBernardo Dominic QUALIFIED
Octavia MaletRussiaAsiya Javayant QUALIFIED
Clifford RimUnited KingdomIoni Bowcher NEGOTIATION
Frozen Columns
Name
Ashley Doe
Emily Whobrey
Ivar Paprocki
David Darakjy
Deepesh Chui
Octavia Malet
Francesco Shinko
James Butt
Ivar Paprocki
Izzy Garufi
Julie Stenseth
Sinclair Waycott
Francesco Shinko
Costa Dilliard
Emily Whobrey
Costa Dilliard
Jennifer Amigon
Jennifer Amigon
Antonio Caudy
Munro Ferencz
Ashley Doe
Cody Saylors
Munro Ferencz
Ricardo Gaucho
Emily Whobrey
Emily Whobrey
Aika Inouye
Emily Whobrey
Sinclair Waycott
Leja Caldarera
David Darakjy
Emily Whobrey
Stacey Maclead
Jeanfrancois Venere
Adams Morasca
Nicolas Iturbide
Isabel Bowley
Greenwood Bolognia
Sinclair Waycott
Ricardo Gaucho
Costa Dilliard
Jennifer Amigon
Murillo Malet
Kaitlin Ostrosky
Izzy Garufi
Deepesh Chui
Chavez Briddick
Cody Saylors
Darci Poquette
Smith Glick
IdCountryDate
1000Russia2026-06-05
1001Brazil2026-06-07
1002Spain2026-05-23
1003Italy2026-06-10
1004Brazil2026-05-26
1005Italy2026-05-29
1006Italy2026-05-24
1007Spain2026-05-24
1008Japan2026-06-12
1009United Kingdom2026-06-15
1010India2026-05-26
1011Russia2026-06-15
1012France2026-06-04
1013Australia2026-06-15
1014Canada2026-05-28
1015Spain2026-05-29
1016Japan2026-05-31
1017Russia2026-06-03
1018Japan2026-06-02
1019Canada2026-05-29
1020Spain2026-06-05
1021Italy2026-05-24
1022Canada2026-06-02
1023Italy2026-05-17
1024Argentina2026-06-09
1025Russia2026-06-05
1026Italy2026-06-07
1027Brazil2026-05-22
1028Russia2026-05-27
1029France2026-05-25
1030India2026-05-29
1031Spain2026-05-20
1032Canada2026-06-13
1033Brazil2026-05-19
1034Australia2026-05-23
1035France2026-06-15
1036Spain2026-05-28
1037Canada2026-06-11
1038United Kingdom2026-05-18
1039Spain2026-06-06
1040Italy2026-05-21
1041United Kingdom2026-05-28
1042India2026-05-22
1043Canada2026-05-22
1044Russia2026-06-02
1045United Kingdom2026-06-02
1046Germany2026-06-14
1047Australia2026-05-31
1048United Kingdom2026-06-15
1049India2026-05-18

On-Demand Data

NameIdCountryDate
Munro Ferencz1000United Kingdom2026-05-18
Arvin Albares1001France2026-05-28
Aruna Figeroa1002Canada2026-05-23
Isabel Bowley1003Russia2026-05-19
Leon Oldroyd1004Brazil2026-05-26
Maria Marrier1005France2026-06-07
Chavez Briddick1006United Kingdom2026-06-10
Jeanfrancois Venere1007Japan2026-05-23
Izzy Garufi1008Spain2026-05-23
Cody Saylors1009Russia2026-06-03
Wickens Nestle1010United Kingdom2026-06-02
Salvatore Stockham1011Canada2026-06-03
Ashley Doe1012Japan2026-06-15
Ricardo Gaucho1013Spain2026-05-21
Octavia Malet1014United Kingdom2026-05-25
Isabel Bowley1015Japan2026-05-17
Isabel Bowley1016United Kingdom2026-06-11
Clifford Rim1017Argentina2026-06-09
Octavia Malet1018France2026-05-26
Chavez Briddick1019Spain2026-05-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Murillo MaletCanadaElwin Sharvill UNQUALIFIED
Smith GlickUnited KingdomIoni Bowcher NEW
Octavia MaletAustraliaAsiya Javayant RENEWAL
Silvio SlusarskiUnited KingdomIoni Bowcher NEW
Wickens NestleSpainIoni Bowcher PROPOSAL
Nicolas IturbideUnited KingdomStephen Shaw UNQUALIFIED
Clifford RimAustraliaIvan Magalhaes UNQUALIFIED
Clifford RimJapanIvan Magalhaes QUALIFIED
Chavez BriddickRussiaXuxue Feng QUALIFIED
Francesco ShinkoRussiaAsiya Javayant RENEWAL
Leon OldroydItalyAsiya Javayant UNQUALIFIED
Morrow RutaUnited KingdomStephen Shaw NEGOTIATION
Greenwood BologniaGermanyAnna Fali RENEWAL
Ashley DoeCanadaStephen Shaw QUALIFIED
Aruna FigeroaFranceAmy Elsner PROPOSAL
Rodrigues CampainItalyIvan Magalhaes NEGOTIATION
Tony FollerBrazilAnna Fali NEGOTIATION
Stacey MacleadIndiaIvan Magalhaes UNQUALIFIED
Jefferson SchemmerCanadaAsiya Javayant PROPOSAL
Isabel BowleyAustraliaXuxue Feng NEW
Isabel BowleySpainIvan Magalhaes QUALIFIED
Aika InouyeBrazilOnyama Limba NEW
Nicolas IturbideArgentinaIvan Magalhaes QUALIFIED
Deepesh ChuiIndiaElwin Sharvill QUALIFIED
Nicolas IturbideGermanyAmy Elsner QUALIFIED
Munro FerenczFranceElwin Sharvill UNQUALIFIED
Morrow RutaItalyAsiya Javayant NEW
Isabel BowleyAustraliaBernardo Dominic RENEWAL
Wickens NestleSpainOnyama Limba PROPOSAL
Nicolas IturbideRussiaAsiya Javayant RENEWAL
Clifford RimRussiaBernardo Dominic NEW
Isabel BowleyUnited KingdomIoni Bowcher NEGOTIATION
Johnson SergiRussiaIvan Magalhaes NEW
Clifford RimUnited KingdomBernardo Dominic PROPOSAL
Darci PoquetteItalyIoni Bowcher NEGOTIATION
Costa DilliardRussiaXuxue Feng PROPOSAL
Deepesh ChuiItalyIoni Bowcher RENEWAL
Stacey MacleadIndiaXuxue Feng PROPOSAL
Misaki RoysterRussiaXuxue Feng RENEWAL
Darci PoquetteJapanAnna Fali 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>