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
Deepesh ChuiJapanAmy Elsner UNQUALIFIED
Tony FollerBrazilAnna Fali UNQUALIFIED
Maisha RulapaughGermanyOnyama Limba NEGOTIATION
Morrow RutaItalyBernardo Dominic QUALIFIED
Ashley DoeJapanOnyama Limba PROPOSAL
Emily WhobreyItalyAnna Fali UNQUALIFIED
Kadeem FlosiArgentinaIvan Magalhaes UNQUALIFIED
Maria MarrierCanadaAsiya Javayant RENEWAL
Francesco ShinkoFranceStephen Shaw PROPOSAL
Mujtaba NickaGermanyXuxue Feng PROPOSAL
Jones VocelkaBrazilElwin Sharvill NEW
Johnson SergiItalyStephen Shaw UNQUALIFIED
Nicolas IturbideUnited KingdomAsiya Javayant PROPOSAL
Tony FollerCanadaIvan Magalhaes NEGOTIATION
Alejandro PerinSpainXuxue Feng RENEWAL
Jefferson SchemmerCanadaXuxue Feng NEGOTIATION
Isabel BowleyGermanyXuxue Feng UNQUALIFIED
Francesco ShinkoItalyAmy Elsner QUALIFIED
Munro FerenczJapanIoni Bowcher NEW
Smith GlickArgentinaAnna Fali UNQUALIFIED
Emily WhobreyRussiaIvan Magalhaes NEW
Kaitlin OstroskyGermanyIoni Bowcher RENEWAL
Wickens NestleSpainOnyama Limba UNQUALIFIED
Clifford RimJapanXuxue Feng RENEWAL
Julie StensethUnited KingdomXuxue Feng NEGOTIATION
Ricardo GauchoArgentinaOnyama Limba UNQUALIFIED
Kaitlin OstroskyRussiaAmy Elsner NEGOTIATION
Nicolas IturbideArgentinaOnyama Limba UNQUALIFIED
Leja CaldareraSpainAmy Elsner NEGOTIATION
Costa DilliardJapanAsiya Javayant NEGOTIATION
David DarakjyAustraliaAmy Elsner QUALIFIED
Munro FerenczCanadaXuxue Feng RENEWAL
Cody SaylorsAustraliaAsiya Javayant RENEWAL
Maisha RulapaughArgentinaOnyama Limba NEW
Stacey MacleadRussiaXuxue Feng UNQUALIFIED
Leon OldroydFranceAsiya Javayant UNQUALIFIED
Aika InouyeItalyIoni Bowcher UNQUALIFIED
Mujtaba NickaBrazilAmy Elsner UNQUALIFIED
Munro FerenczArgentinaXuxue Feng RENEWAL
Jennifer AmigonItalyAnna Fali PROPOSAL
Emily WhobreyUnited KingdomXuxue Feng NEGOTIATION
Ricardo GauchoUnited KingdomAnna Fali NEW
Munro FerenczItalyAsiya Javayant PROPOSAL
Misaki RoysterArgentinaXuxue Feng UNQUALIFIED
Mujtaba NickaSpainBernardo Dominic NEW
Morrow RutaArgentinaAmy Elsner RENEWAL
Rodrigues CampainItalyStephen Shaw UNQUALIFIED
Sinclair WaycottCanadaElwin Sharvill QUALIFIED
Kaitlin OstroskyAustraliaIvan Magalhaes NEGOTIATION
Maisha RulapaughGermanyStephen Shaw NEW
Horizontal
NameCountryRepresentativeStatus
Wickens NestleBrazilElwin Sharvill NEW
Deepesh ChuiJapanIvan Magalhaes RENEWAL
Emily WhobreyGermanyAsiya Javayant QUALIFIED
Alejandro PerinGermanyStephen Shaw UNQUALIFIED
Jefferson SchemmerAustraliaStephen Shaw QUALIFIED
Costa DilliardJapanStephen Shaw NEW
Johnson SergiBrazilOnyama Limba PROPOSAL
Wickens NestleSpainAmy Elsner NEW
Greenwood BologniaUnited KingdomElwin Sharvill PROPOSAL
Smith GlickCanadaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleyAustralia2026-04-17Rangoni Of Florence UNQUALIFIED9Anna Fali
1001Ashley DoeRussia2026-05-06Chapman, Ross E Esq RENEWAL25Amy Elsner
1002Julie StensethIndia2026-05-02Truhlar And Truhlar Attys QUALIFIED23Stephen Shaw
1003Deepesh ChuiJapan2026-04-26Feiner Bros RENEWAL45Anna Fali
1004Ivar PaprockiSpain2026-05-09Chemel, James L Cpa PROPOSAL90Stephen Shaw
1005Aika InouyeJapan2026-04-27Commercial Press QUALIFIED98Stephen Shaw
1006Mujtaba NickaUnited Kingdom2026-04-27Dorl, James J Esq RENEWAL75Anna Fali
1007Jennifer AmigonArgentina2026-04-18Chapman, Ross E Esq RENEWAL67Asiya Javayant
1008Clifford RimArgentina2026-04-21Benton, John B Jr PROPOSAL70Amy Elsner
1009Kaitlin OstroskyUnited Kingdom2026-05-01Dorl, James J Esq PROPOSAL95Xuxue Feng
1010Wickens NestleArgentina2026-04-22Morlong Associates QUALIFIED37Amy Elsner
1011Kadeem FlosiRussia2026-04-18Feltz Printing Service UNQUALIFIED24Stephen Shaw
1012Sinclair WaycottUnited Kingdom2026-04-13Morlong Associates RENEWAL73Ioni Bowcher
1013Juan WieserItaly2026-04-13Morlong Associates RENEWAL44Onyama Limba
1014Darci PoquetteGermany2026-05-10Chemel, James L Cpa QUALIFIED15Asiya Javayant
1015David DarakjyBrazil2026-04-17Commercial Press PROPOSAL76Amy Elsner
1016Darci PoquetteSpain2026-05-02Dorl, James J Esq RENEWAL31Ivan Magalhaes
1017Silvio SlusarskiArgentina2026-04-30Benton, John B Jr RENEWAL68Anna Fali
1018Tony FollerFrance2026-05-02Chanay, Jeffrey A Esq NEGOTIATION32Bernardo Dominic
1019Izzy GarufiAustralia2026-04-16Morlong Associates NEGOTIATION20Anna Fali
1020Silvio SlusarskiArgentina2026-04-20Buckley Miller Wright PROPOSAL88Asiya Javayant
1021Salvatore StockhamRussia2026-05-10Morlong Associates NEW33Anna Fali
1022Kaitlin OstroskyCanada2026-05-07Commercial Press NEW33Bernardo Dominic
1023Silvio SlusarskiSpain2026-04-26Chapman, Ross E Esq NEGOTIATION6Onyama Limba
1024Murillo MaletRussia2026-04-24Chanay, Jeffrey A Esq UNQUALIFIED30Ivan Magalhaes
1025Chavez BriddickCanada2026-04-25Chapman, Ross E Esq RENEWAL61Anna Fali
1026Murillo MaletIndia2026-04-20Commercial Press NEGOTIATION21Onyama Limba
1027Darci PoquetteJapan2026-04-27Morlong Associates NEW48Asiya Javayant
1028Ivar PaprockiItaly2026-04-28Morlong Associates NEGOTIATION7Xuxue Feng
1029Aruna FigeroaCanada2026-04-20Commercial Press NEGOTIATION91Bernardo Dominic
1030David DarakjyRussia2026-04-22Chapman, Ross E Esq UNQUALIFIED62Amy Elsner
1031Jefferson SchemmerSpain2026-04-28Chanay, Jeffrey A Esq UNQUALIFIED16Ioni Bowcher
1032Cody SaylorsIndia2026-05-05Buckley Miller Wright UNQUALIFIED75Elwin Sharvill
1033Alejandro PerinBrazil2026-04-16Chanay, Jeffrey A Esq NEW53Onyama Limba
1034Costa DilliardAustralia2026-04-21Morlong Associates NEGOTIATION32Ioni Bowcher
1035Claire TollnerRussia2026-05-02King, Christopher A Esq QUALIFIED77Stephen Shaw
1036Aditya KuskoUnited Kingdom2026-04-16Truhlar And Truhlar Attys RENEWAL34Stephen Shaw
1037Octavia MaletSpain2026-04-16Rangoni Of Florence NEGOTIATION26Bernardo Dominic
1038Ivar PaprockiRussia2026-05-07Rangoni Of Florence NEGOTIATION24Xuxue Feng
1039Faith GillianCanada2026-04-16Rousseaux, Michael Esq NEW25Stephen Shaw
1040Chavez BriddickJapan2026-05-07Dorl, James J Esq NEGOTIATION83Ivan Magalhaes
1041Johnson SergiJapan2026-04-15Chanay, Jeffrey A Esq NEW16Ivan Magalhaes
1042Maria MarrierAustralia2026-04-23Rousseaux, Michael Esq UNQUALIFIED36Ivan Magalhaes
1043Murillo MaletFrance2026-05-06Commercial Press NEGOTIATION27Asiya Javayant
1044Maria MarrierIndia2026-04-27Feltz Printing Service UNQUALIFIED4Xuxue Feng
1045Leja CaldareraUnited Kingdom2026-05-02Feltz Printing Service QUALIFIED15Ivan Magalhaes
1046Jefferson SchemmerJapan2026-05-01Morlong Associates QUALIFIED43Asiya Javayant
1047Clifford RimCanada2026-04-26Truhlar And Truhlar Attys NEGOTIATION84Anna Fali
1048Leja CaldareraFrance2026-04-18Chemel, James L Cpa QUALIFIED95Ivan Magalhaes
1049Faith GillianItaly2026-04-29Morlong Associates NEGOTIATION68Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Isabel BowleyJapanElwin Sharvill NEGOTIATION
Leja CaldareraRussiaOnyama Limba QUALIFIED
Jefferson SchemmerIndiaBernardo Dominic RENEWAL
Faith GillianBrazilXuxue Feng NEGOTIATION
Antonio CaudyItalyElwin Sharvill UNQUALIFIED
Ashley DoeIndiaElwin Sharvill UNQUALIFIED
Salvatore StockhamJapanAsiya Javayant PROPOSAL
Smith GlickGermanyIoni Bowcher NEGOTIATION
Aika InouyeAustraliaAmy Elsner RENEWAL
Johnson SergiCanadaXuxue Feng UNQUALIFIED
Mayumi KolmetzFranceIoni Bowcher QUALIFIED
Izzy GarufiBrazilBernardo Dominic NEW
Rodrigues CampainGermanyOnyama Limba NEGOTIATION
Misaki RoysterIndiaElwin Sharvill UNQUALIFIED
Arvin AlbaresBrazilElwin Sharvill QUALIFIED
Nicolas IturbideArgentinaXuxue Feng QUALIFIED
Octavia MaletFranceOnyama Limba UNQUALIFIED
Izzy GarufiUnited KingdomOnyama Limba PROPOSAL
Clifford RimBrazilBernardo Dominic NEW
James ButtCanadaStephen Shaw PROPOSAL
Sinclair WaycottSpainIvan Magalhaes NEGOTIATION
Claire TollnerBrazilAsiya Javayant UNQUALIFIED
Chavez BriddickSpainAmy Elsner RENEWAL
David DarakjyRussiaOnyama Limba NEW
Isabel BowleyArgentinaAmy Elsner NEGOTIATION
Kaitlin OstroskyBrazilElwin Sharvill PROPOSAL
Stacey MacleadIndiaAnna Fali RENEWAL
Octavia MaletCanadaBernardo Dominic NEW
Leja CaldareraArgentinaOnyama Limba PROPOSAL
Maisha RulapaughFranceOnyama Limba UNQUALIFIED
Clifford RimJapanAsiya Javayant NEW
David DarakjySpainAsiya Javayant PROPOSAL
Isabel BowleyGermanyOnyama Limba NEW
Ivar PaprockiRussiaBernardo Dominic UNQUALIFIED
Arvin AlbaresJapanIvan Magalhaes UNQUALIFIED
Aditya KuskoRussiaStephen Shaw UNQUALIFIED
Sinclair WaycottGermanyIoni Bowcher PROPOSAL
Salvatore StockhamAustraliaOnyama Limba NEW
Salvatore StockhamJapanXuxue Feng NEW
Julie StensethGermanyElwin Sharvill RENEWAL
Kaitlin OstroskyCanadaStephen Shaw QUALIFIED
Ivar PaprockiJapanIvan Magalhaes NEW
Leon OldroydFranceBernardo Dominic NEGOTIATION
Costa DilliardRussiaStephen Shaw RENEWAL
Cody SaylorsItalyAmy Elsner RENEWAL
Leon OldroydGermanyIoni Bowcher RENEWAL
Greenwood BologniaGermanyAnna Fali QUALIFIED
Silvio SlusarskiJapanAsiya Javayant NEW
Salvatore StockhamUnited KingdomBernardo Dominic NEGOTIATION
Ivar PaprockiSpainOnyama Limba RENEWAL
Frozen Columns
Name
James Butt
Chavez Briddick
Leja Caldarera
Greenwood Bolognia
Misaki Royster
James Butt
Deepesh Chui
Izzy Garufi
Julie Stenseth
Morrow Ruta
Maisha Rulapaugh
Aika Inouye
Alejandro Perin
Leon Oldroyd
Isabel Bowley
Murillo Malet
Mayumi Kolmetz
Silvio Slusarski
Faith Gillian
Cody Saylors
Smith Glick
Maisha Rulapaugh
Clifford Rim
Kadeem Flosi
Maisha Rulapaugh
Wickens Nestle
Isabel Bowley
Jennifer Amigon
Ivar Paprocki
Maisha Rulapaugh
Alejandro Perin
Chavez Briddick
Jefferson Schemmer
Salvatore Stockham
Nicolas Iturbide
Alejandro Perin
Emily Whobrey
Nicolas Iturbide
Antonio Caudy
Rodrigues Campain
Silvio Slusarski
Octavia Malet
Clifford Rim
James Butt
Morrow Ruta
Morrow Ruta
Rodrigues Campain
Silvio Slusarski
Claire Tollner
Aruna Figeroa
IdCountryDate
1000Russia2026-04-22
1001Canada2026-04-16
1002Germany2026-05-06
1003Argentina2026-05-07
1004Brazil2026-04-22
1005Canada2026-05-01
1006France2026-04-30
1007India2026-04-28
1008Japan2026-04-14
1009United Kingdom2026-04-14
1010Australia2026-04-13
1011Russia2026-05-11
1012Russia2026-04-25
1013Canada2026-05-03
1014Japan2026-05-05
1015Canada2026-04-24
1016Australia2026-05-07
1017Russia2026-04-20
1018Russia2026-05-08
1019Brazil2026-05-09
1020Japan2026-05-02
1021Argentina2026-05-04
1022Brazil2026-05-04
1023United Kingdom2026-04-29
1024Canada2026-04-27
1025Italy2026-04-23
1026France2026-05-09
1027Spain2026-05-09
1028Japan2026-04-28
1029Spain2026-05-05
1030Italy2026-05-08
1031Brazil2026-04-19
1032United Kingdom2026-04-27
1033Germany2026-04-19
1034United Kingdom2026-04-16
1035India2026-05-04
1036Brazil2026-04-19
1037United Kingdom2026-04-24
1038Italy2026-04-29
1039Argentina2026-04-18
1040Brazil2026-04-25
1041Argentina2026-04-12
1042Brazil2026-04-28
1043Brazil2026-05-08
1044United Kingdom2026-04-30
1045Australia2026-05-08
1046Canada2026-05-11
1047Italy2026-04-28
1048Japan2026-04-15
1049Italy2026-05-09

On-Demand Data

NameIdCountryDate
Stacey Maclead1000Russia2026-04-21
Antonio Caudy1001France2026-04-17
Alejandro Perin1002Italy2026-05-04
Stacey Maclead1003France2026-05-07
Maisha Rulapaugh1004United Kingdom2026-04-13
Silvio Slusarski1005India2026-04-28
Stacey Maclead1006India2026-04-28
Morrow Ruta1007India2026-04-12
Mujtaba Nicka1008Germany2026-04-18
Greenwood Bolognia1009Russia2026-04-14
Adams Morasca1010Japan2026-04-20
Octavia Malet1011Germany2026-04-20
Ashley Doe1012Japan2026-04-29
David Darakjy1013Brazil2026-04-29
Leon Oldroyd1014India2026-05-06
Aditya Kusko1015India2026-05-04
Mayumi Kolmetz1016Russia2026-05-11
Chavez Briddick1017Brazil2026-04-16
Alejandro Perin1018United Kingdom2026-04-25
Deepesh Chui1019Russia2026-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh ChuiGermanyIoni Bowcher NEGOTIATION
Cody SaylorsRussiaStephen Shaw NEW
Stacey MacleadJapanOnyama Limba UNQUALIFIED
Leon OldroydBrazilAsiya Javayant UNQUALIFIED
Chavez BriddickJapanAnna Fali UNQUALIFIED
Greenwood BologniaUnited KingdomOnyama Limba UNQUALIFIED
Wickens NestleCanadaAmy Elsner NEGOTIATION
Claire TollnerIndiaXuxue Feng UNQUALIFIED
Clifford RimSpainAsiya Javayant NEW
Alejandro PerinAustraliaAnna Fali QUALIFIED
Juan WieserCanadaAmy Elsner NEGOTIATION
Wickens NestleArgentinaOnyama Limba RENEWAL
Munro FerenczUnited KingdomIvan Magalhaes UNQUALIFIED
Emily WhobreyIndiaElwin Sharvill QUALIFIED
Ivar PaprockiSpainIoni Bowcher UNQUALIFIED
Chavez BriddickGermanyXuxue Feng NEGOTIATION
Ashley DoeUnited KingdomBernardo Dominic NEGOTIATION
Mayumi KolmetzJapanIoni Bowcher UNQUALIFIED
Maria MarrierRussiaBernardo Dominic NEGOTIATION
Misaki RoysterJapanElwin Sharvill QUALIFIED
Izzy GarufiArgentinaIvan Magalhaes PROPOSAL
Tony FollerArgentinaAsiya Javayant PROPOSAL
David DarakjyUnited KingdomElwin Sharvill PROPOSAL
Isabel BowleyUnited KingdomXuxue Feng NEGOTIATION
Salvatore StockhamUnited KingdomElwin Sharvill NEW
Jones VocelkaSpainOnyama Limba QUALIFIED
James ButtCanadaIoni Bowcher UNQUALIFIED
Izzy GarufiArgentinaBernardo Dominic PROPOSAL
Emily WhobreyIndiaAnna Fali UNQUALIFIED
Murillo MaletJapanIoni Bowcher NEW
Kadeem FlosiItalyElwin Sharvill QUALIFIED
Mayumi KolmetzItalyXuxue Feng PROPOSAL
Leon OldroydItalyIvan Magalhaes PROPOSAL
Sinclair WaycottSpainOnyama Limba UNQUALIFIED
Aika InouyeRussiaIvan Magalhaes QUALIFIED
Jones VocelkaCanadaAmy Elsner PROPOSAL
Adams MorascaAustraliaIvan Magalhaes UNQUALIFIED
Emily WhobreyRussiaIoni Bowcher NEW
Smith GlickBrazilAmy Elsner RENEWAL
Arvin AlbaresSpainOnyama Limba PROPOSAL

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