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
Morrow RutaUnited KingdomOnyama Limba PROPOSAL
Ashley DoeGermanyOnyama Limba NEW
Cody SaylorsGermanyXuxue Feng PROPOSAL
Chavez BriddickItalyAsiya Javayant NEGOTIATION
Isabel BowleyJapanIoni Bowcher PROPOSAL
Jennifer AmigonFranceBernardo Dominic UNQUALIFIED
Morrow RutaBrazilOnyama Limba NEW
Rodrigues CampainCanadaAmy Elsner UNQUALIFIED
Costa DilliardBrazilAsiya Javayant NEW
Darci PoquetteArgentinaElwin Sharvill RENEWAL
Stacey MacleadAustraliaIvan Magalhaes NEW
Claire TollnerUnited KingdomIvan Magalhaes QUALIFIED
Ivar PaprockiSpainAmy Elsner NEW
Izzy GarufiCanadaAmy Elsner PROPOSAL
Darci PoquetteGermanyOnyama Limba QUALIFIED
Francesco ShinkoUnited KingdomAsiya Javayant QUALIFIED
Mujtaba NickaIndiaXuxue Feng UNQUALIFIED
Darci PoquetteSpainAmy Elsner QUALIFIED
Kaitlin OstroskyBrazilElwin Sharvill UNQUALIFIED
Misaki RoysterJapanXuxue Feng PROPOSAL
Clifford RimArgentinaOnyama Limba UNQUALIFIED
Misaki RoysterSpainAsiya Javayant QUALIFIED
Isabel BowleyBrazilIvan Magalhaes RENEWAL
Deepesh ChuiGermanyIoni Bowcher NEW
Johnson SergiItalyElwin Sharvill NEGOTIATION
Antonio CaudyGermanyElwin Sharvill UNQUALIFIED
Mayumi KolmetzArgentinaStephen Shaw UNQUALIFIED
Tony FollerCanadaBernardo Dominic NEW
Mayumi KolmetzSpainBernardo Dominic NEW
Kadeem FlosiArgentinaIvan Magalhaes NEGOTIATION
Sinclair WaycottAustraliaAmy Elsner NEGOTIATION
Antonio CaudyFranceXuxue Feng QUALIFIED
Stacey MacleadCanadaAsiya Javayant NEGOTIATION
Ivar PaprockiFranceIoni Bowcher PROPOSAL
Octavia MaletSpainAsiya Javayant PROPOSAL
Faith GillianUnited KingdomAmy Elsner NEW
Izzy GarufiAustraliaElwin Sharvill PROPOSAL
Chavez BriddickIndiaStephen Shaw UNQUALIFIED
Jeanfrancois VenereArgentinaBernardo Dominic QUALIFIED
Leja CaldareraSpainStephen Shaw QUALIFIED
Ashley DoeSpainAsiya Javayant NEW
Kadeem FlosiCanadaAsiya Javayant RENEWAL
Stacey MacleadUnited KingdomBernardo Dominic RENEWAL
Greenwood BologniaItalyElwin Sharvill QUALIFIED
Costa DilliardArgentinaBernardo Dominic QUALIFIED
Mujtaba NickaBrazilIoni Bowcher UNQUALIFIED
Mujtaba NickaArgentinaXuxue Feng NEGOTIATION
Chavez BriddickJapanOnyama Limba NEW
Jennifer AmigonAustraliaStephen Shaw UNQUALIFIED
Silvio SlusarskiFranceIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Cody SaylorsRussiaIoni Bowcher UNQUALIFIED
Morrow RutaSpainAmy Elsner UNQUALIFIED
Jennifer AmigonUnited KingdomIvan Magalhaes UNQUALIFIED
Arvin AlbaresIndiaBernardo Dominic NEW
Darci PoquetteIndiaAmy Elsner RENEWAL
Maisha RulapaughFranceAmy Elsner PROPOSAL
Murillo MaletRussiaAmy Elsner NEGOTIATION
David DarakjyBrazilXuxue Feng UNQUALIFIED
Maria MarrierBrazilAsiya Javayant UNQUALIFIED
Silvio SlusarskiAustraliaOnyama Limba UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair WaycottArgentina2026-04-07Morlong Associates NEW91Ioni Bowcher
1001Claire TollnerBrazil2026-04-06Chanay, Jeffrey A Esq QUALIFIED9Ivan Magalhaes
1002Francesco ShinkoUnited Kingdom2026-04-17Chemel, James L Cpa QUALIFIED11Asiya Javayant
1003Smith GlickCanada2026-04-19Rangoni Of Florence UNQUALIFIED68Bernardo Dominic
1004Mujtaba NickaCanada2026-04-07Rangoni Of Florence QUALIFIED38Asiya Javayant
1005Ivar PaprockiIndia2026-04-01King, Christopher A Esq RENEWAL90Elwin Sharvill
1006Maisha RulapaughFrance2026-04-11Rangoni Of Florence NEGOTIATION82Ivan Magalhaes
1007Juan WieserGermany2026-04-07Morlong Associates UNQUALIFIED10Onyama Limba
1008Juan WieserSpain2026-03-22Commercial Press NEW8Bernardo Dominic
1009Darci PoquetteAustralia2026-04-20Chanay, Jeffrey A Esq PROPOSAL34Ivan Magalhaes
1010Darci PoquetteUnited Kingdom2026-03-27Chapman, Ross E Esq QUALIFIED31Onyama Limba
1011Wickens NestleFrance2026-04-05Feltz Printing Service NEGOTIATION35Amy Elsner
1012Mayumi KolmetzAustralia2026-03-22King, Christopher A Esq QUALIFIED83Amy Elsner
1013Morrow RutaBrazil2026-04-03Chemel, James L Cpa PROPOSAL36Stephen Shaw
1014David DarakjyIndia2026-04-18Printing Dimensions NEGOTIATION21Ivan Magalhaes
1015Stacey MacleadRussia2026-03-26Dorl, James J Esq PROPOSAL12Elwin Sharvill
1016Leja CaldareraBrazil2026-04-19Feiner Bros UNQUALIFIED79Amy Elsner
1017Jones VocelkaSpain2026-03-26King, Christopher A Esq RENEWAL62Xuxue Feng
1018Juan WieserSpain2026-03-26Benton, John B Jr QUALIFIED87Elwin Sharvill
1019Greenwood BologniaFrance2026-04-08King, Christopher A Esq QUALIFIED2Anna Fali
1020Maria MarrierCanada2026-03-24Rangoni Of Florence RENEWAL67Ivan Magalhaes
1021Isabel BowleyItaly2026-04-18Rangoni Of Florence NEGOTIATION26Asiya Javayant
1022Ashley DoeItaly2026-04-20Benton, John B Jr RENEWAL26Ivan Magalhaes
1023Jefferson SchemmerCanada2026-04-03Truhlar And Truhlar Attys PROPOSAL2Anna Fali
1024Clifford RimUnited Kingdom2026-04-11Chanay, Jeffrey A Esq UNQUALIFIED15Stephen Shaw
1025Claire TollnerBrazil2026-04-16Chanay, Jeffrey A Esq NEW90Xuxue Feng
1026Aditya KuskoItaly2026-04-03Benton, John B Jr NEGOTIATION95Anna Fali
1027Ashley DoeCanada2026-04-07Morlong Associates UNQUALIFIED93Ioni Bowcher
1028Chavez BriddickFrance2026-04-02Chanay, Jeffrey A Esq PROPOSAL12Bernardo Dominic
1029Arvin AlbaresFrance2026-04-03Printing Dimensions RENEWAL61Bernardo Dominic
1030Smith GlickSpain2026-04-10Printing Dimensions PROPOSAL48Asiya Javayant
1031Cody SaylorsIndia2026-04-12Buckley Miller Wright RENEWAL33Xuxue Feng
1032Alejandro PerinArgentina2026-04-14Dorl, James J Esq NEGOTIATION17Ioni Bowcher
1033Kaitlin OstroskyArgentina2026-04-10Chanay, Jeffrey A Esq QUALIFIED0Ioni Bowcher
1034Aditya KuskoBrazil2026-04-15Feiner Bros NEW21Ivan Magalhaes
1035Jeanfrancois VenereAustralia2026-04-03Chapman, Ross E Esq NEW14Onyama Limba
1036Tony FollerSpain2026-04-10Feiner Bros RENEWAL81Amy Elsner
1037Johnson SergiUnited Kingdom2026-04-15Feiner Bros RENEWAL99Stephen Shaw
1038Sinclair WaycottCanada2026-04-10Feiner Bros UNQUALIFIED8Bernardo Dominic
1039Wickens NestleUnited Kingdom2026-04-03Buckley Miller Wright QUALIFIED36Xuxue Feng
1040Rodrigues CampainItaly2026-04-06Morlong Associates RENEWAL47Xuxue Feng
1041Nicolas IturbideBrazil2026-04-20Buckley Miller Wright NEW63Bernardo Dominic
1042Jeanfrancois VenereGermany2026-03-25Benton, John B Jr RENEWAL28Anna Fali
1043James ButtGermany2026-04-16Printing Dimensions QUALIFIED88Onyama Limba
1044Maria MarrierUnited Kingdom2026-04-20Feltz Printing Service RENEWAL31Ivan Magalhaes
1045Silvio SlusarskiJapan2026-03-24Chemel, James L Cpa PROPOSAL5Bernardo Dominic
1046Leon OldroydFrance2026-03-23Printing Dimensions UNQUALIFIED64Stephen Shaw
1047Claire TollnerItaly2026-03-29Chemel, James L Cpa NEW78Xuxue Feng
1048Silvio SlusarskiIndia2026-04-03Buckley Miller Wright QUALIFIED10Bernardo Dominic
1049Darci PoquetteBrazil2026-03-30Feltz Printing Service NEW68Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Izzy GarufiIndiaAmy Elsner NEGOTIATION
James ButtIndiaXuxue Feng NEGOTIATION
Arvin AlbaresAustraliaAsiya Javayant UNQUALIFIED
Antonio CaudySpainElwin Sharvill NEGOTIATION
David DarakjyAustraliaXuxue Feng NEW
Kaitlin OstroskyRussiaAmy Elsner QUALIFIED
Deepesh ChuiAustraliaAmy Elsner NEGOTIATION
Aika InouyeBrazilAnna Fali RENEWAL
Kaitlin OstroskyArgentinaAmy Elsner UNQUALIFIED
Adams MorascaJapanAmy Elsner NEGOTIATION
Izzy GarufiAustraliaXuxue Feng NEGOTIATION
Nicolas IturbideUnited KingdomIvan Magalhaes NEGOTIATION
Maria MarrierAustraliaElwin Sharvill NEGOTIATION
Claire TollnerArgentinaAsiya Javayant QUALIFIED
Tony FollerJapanElwin Sharvill QUALIFIED
Maria MarrierRussiaIoni Bowcher PROPOSAL
Emily WhobreyIndiaAmy Elsner PROPOSAL
Ashley DoeUnited KingdomAsiya Javayant PROPOSAL
Jennifer AmigonSpainOnyama Limba NEGOTIATION
Juan WieserRussiaIvan Magalhaes NEW
Silvio SlusarskiCanadaStephen Shaw PROPOSAL
Kadeem FlosiJapanAsiya Javayant RENEWAL
Jones VocelkaArgentinaElwin Sharvill NEW
Darci PoquetteSpainAmy Elsner NEGOTIATION
Salvatore StockhamUnited KingdomXuxue Feng RENEWAL
Octavia MaletItalyElwin Sharvill NEGOTIATION
Salvatore StockhamFranceAsiya Javayant NEW
Darci PoquetteBrazilXuxue Feng NEW
Arvin AlbaresItalyIvan Magalhaes UNQUALIFIED
Juan WieserFranceXuxue Feng NEGOTIATION
Morrow RutaRussiaIvan Magalhaes UNQUALIFIED
Chavez BriddickCanadaIvan Magalhaes QUALIFIED
Murillo MaletCanadaIoni Bowcher UNQUALIFIED
Izzy GarufiCanadaIoni Bowcher RENEWAL
Rodrigues CampainArgentinaAsiya Javayant NEGOTIATION
Nicolas IturbideArgentinaIoni Bowcher PROPOSAL
Faith GillianCanadaAmy Elsner RENEWAL
Wickens NestleIndiaAmy Elsner RENEWAL
Tony FollerJapanIoni Bowcher RENEWAL
Jefferson SchemmerJapanXuxue Feng QUALIFIED
Nicolas IturbideAustraliaXuxue Feng RENEWAL
Maria MarrierSpainXuxue Feng RENEWAL
Leon OldroydJapanStephen Shaw NEW
Antonio CaudyRussiaElwin Sharvill UNQUALIFIED
Octavia MaletBrazilOnyama Limba QUALIFIED
Greenwood BologniaCanadaIvan Magalhaes RENEWAL
Aditya KuskoBrazilIvan Magalhaes UNQUALIFIED
Stacey MacleadCanadaAsiya Javayant NEGOTIATION
Darci PoquetteJapanAsiya Javayant RENEWAL
Aruna FigeroaGermanyIoni Bowcher NEGOTIATION
Frozen Columns
Name
Octavia Malet
Clifford Rim
Greenwood Bolognia
Murillo Malet
Leja Caldarera
Maisha Rulapaugh
Chavez Briddick
James Butt
Octavia Malet
Cody Saylors
Claire Tollner
Jones Vocelka
Salvatore Stockham
Johnson Sergi
Johnson Sergi
Juan Wieser
Izzy Garufi
Adams Morasca
Salvatore Stockham
Aruna Figeroa
Aika Inouye
Nicolas Iturbide
Nicolas Iturbide
Tony Foller
Stacey Maclead
Sinclair Waycott
Maisha Rulapaugh
Mayumi Kolmetz
Kadeem Flosi
Ricardo Gaucho
James Butt
Aruna Figeroa
Maisha Rulapaugh
Maria Marrier
Leja Caldarera
Smith Glick
Leja Caldarera
Jefferson Schemmer
Julie Stenseth
Rodrigues Campain
Silvio Slusarski
Jones Vocelka
Chavez Briddick
Maria Marrier
David Darakjy
Ivar Paprocki
Nicolas Iturbide
Greenwood Bolognia
Rodrigues Campain
Jones Vocelka
IdCountryDate
1000United Kingdom2026-04-20
1001Italy2026-03-27
1002Germany2026-04-02
1003France2026-04-11
1004Italy2026-04-18
1005Germany2026-04-11
1006Australia2026-03-29
1007Canada2026-04-02
1008Argentina2026-04-16
1009United Kingdom2026-03-29
1010India2026-03-26
1011France2026-03-22
1012Argentina2026-03-22
1013Germany2026-03-24
1014France2026-04-16
1015Russia2026-04-13
1016Argentina2026-04-20
1017United Kingdom2026-04-02
1018Russia2026-04-15
1019Italy2026-04-06
1020Germany2026-04-16
1021Argentina2026-04-20
1022Canada2026-04-06
1023United Kingdom2026-04-07
1024India2026-03-31
1025United Kingdom2026-03-31
1026Argentina2026-04-10
1027Brazil2026-03-26
1028Italy2026-04-20
1029United Kingdom2026-04-15
1030Germany2026-03-23
1031Germany2026-03-25
1032Japan2026-03-27
1033Argentina2026-04-20
1034India2026-04-07
1035Italy2026-04-20
1036Argentina2026-04-11
1037India2026-03-31
1038Italy2026-04-13
1039Canada2026-04-17
1040Italy2026-04-11
1041Canada2026-03-26
1042Russia2026-04-16
1043India2026-04-08
1044India2026-04-16
1045Russia2026-04-02
1046France2026-04-09
1047France2026-04-10
1048Russia2026-04-16
1049Italy2026-04-15

On-Demand Data

NameIdCountryDate
Salvatore Stockham1000France2026-03-28
Isabel Bowley1001Italy2026-04-06
Aditya Kusko1002Argentina2026-04-12
Johnson Sergi1003France2026-04-04
Izzy Garufi1004Brazil2026-04-19
Murillo Malet1005France2026-03-29
Emily Whobrey1006India2026-04-17
Jones Vocelka1007France2026-04-16
Jones Vocelka1008United Kingdom2026-04-07
Leon Oldroyd1009Italy2026-04-06
Octavia Malet1010Australia2026-03-25
Ivar Paprocki1011Canada2026-04-03
Ashley Doe1012Russia2026-04-01
Maisha Rulapaugh1013Russia2026-04-02
Salvatore Stockham1014Russia2026-04-09
Ivar Paprocki1015Canada2026-04-01
Wickens Nestle1016Germany2026-04-03
Emily Whobrey1017Brazil2026-04-05
Jones Vocelka1018Spain2026-04-04
Tony Foller1019Germany2026-03-22
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Arvin AlbaresGermanyIvan Magalhaes PROPOSAL
Tony FollerArgentinaAnna Fali NEGOTIATION
Adams MorascaIndiaAnna Fali NEW
Francesco ShinkoSpainOnyama Limba RENEWAL
Julie StensethArgentinaIoni Bowcher UNQUALIFIED
Antonio CaudyUnited KingdomIoni Bowcher RENEWAL
Francesco ShinkoBrazilIoni Bowcher PROPOSAL
Cody SaylorsIndiaIoni Bowcher NEW
Kaitlin OstroskySpainOnyama Limba NEGOTIATION
Nicolas IturbideRussiaIvan Magalhaes QUALIFIED
Adams MorascaFranceBernardo Dominic NEGOTIATION
Jones VocelkaUnited KingdomStephen Shaw NEW
Tony FollerUnited KingdomIoni Bowcher NEW
Aika InouyeRussiaAmy Elsner NEW
Mayumi KolmetzJapanAsiya Javayant QUALIFIED
Mayumi KolmetzRussiaAsiya Javayant PROPOSAL
Claire TollnerFranceIvan Magalhaes UNQUALIFIED
Clifford RimUnited KingdomAnna Fali QUALIFIED
Jefferson SchemmerArgentinaXuxue Feng NEGOTIATION
Chavez BriddickBrazilIvan Magalhaes RENEWAL
Faith GillianSpainAsiya Javayant NEW
Wickens NestleGermanyElwin Sharvill NEW
Mayumi KolmetzRussiaOnyama Limba UNQUALIFIED
Ricardo GauchoAustraliaIoni Bowcher QUALIFIED
Stacey MacleadIndiaIoni Bowcher UNQUALIFIED
Murillo MaletCanadaStephen Shaw NEW
Tony FollerCanadaAsiya Javayant UNQUALIFIED
Johnson SergiSpainIvan Magalhaes RENEWAL
Kaitlin OstroskyBrazilStephen Shaw PROPOSAL
Kadeem FlosiRussiaBernardo Dominic NEGOTIATION
Ashley DoeIndiaAsiya Javayant PROPOSAL
Sinclair WaycottFranceIoni Bowcher NEGOTIATION
Jeanfrancois VenereItalyIvan Magalhaes PROPOSAL
Tony FollerGermanyElwin Sharvill RENEWAL
Ashley DoeUnited KingdomAnna Fali RENEWAL
James ButtArgentinaAsiya Javayant RENEWAL
Ashley DoeCanadaAsiya Javayant NEW
Ricardo GauchoIndiaAnna Fali NEW
Julie StensethItalyAmy Elsner RENEWAL
Clifford RimItalyOnyama Limba RENEWAL

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