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
Faith GillianAustraliaAmy Elsner NEW
Jennifer AmigonArgentinaIoni Bowcher NEGOTIATION
Tony FollerRussiaElwin Sharvill NEW
Kadeem FlosiItalyAmy Elsner UNQUALIFIED
Maria MarrierJapanXuxue Feng UNQUALIFIED
Munro FerenczCanadaAnna Fali NEW
Adams MorascaAustraliaAnna Fali QUALIFIED
Izzy GarufiUnited KingdomIvan Magalhaes NEW
Munro FerenczSpainOnyama Limba PROPOSAL
Juan WieserSpainAnna Fali PROPOSAL
Kadeem FlosiBrazilBernardo Dominic QUALIFIED
Sinclair WaycottRussiaElwin Sharvill NEGOTIATION
Smith GlickIndiaIvan Magalhaes NEGOTIATION
Antonio CaudyUnited KingdomBernardo Dominic PROPOSAL
Murillo MaletBrazilAmy Elsner QUALIFIED
Francesco ShinkoGermanyBernardo Dominic QUALIFIED
Aika InouyeSpainAnna Fali UNQUALIFIED
Leon OldroydFranceStephen Shaw NEGOTIATION
Isabel BowleyGermanyStephen Shaw NEGOTIATION
Aruna FigeroaUnited KingdomStephen Shaw NEW
Kadeem FlosiCanadaOnyama Limba UNQUALIFIED
Munro FerenczArgentinaIoni Bowcher QUALIFIED
Faith GillianArgentinaXuxue Feng QUALIFIED
Salvatore StockhamArgentinaIoni Bowcher UNQUALIFIED
Mujtaba NickaAustraliaAnna Fali PROPOSAL
Mayumi KolmetzCanadaElwin Sharvill QUALIFIED
Rodrigues CampainCanadaAnna Fali NEW
Ivar PaprockiAustraliaOnyama Limba PROPOSAL
Jones VocelkaAustraliaXuxue Feng UNQUALIFIED
Claire TollnerAustraliaBernardo Dominic QUALIFIED
James ButtIndiaIvan Magalhaes UNQUALIFIED
Jefferson SchemmerBrazilBernardo Dominic PROPOSAL
Clifford RimFranceAmy Elsner UNQUALIFIED
Nicolas IturbideBrazilAnna Fali NEGOTIATION
Francesco ShinkoUnited KingdomOnyama Limba NEGOTIATION
Izzy GarufiRussiaIvan Magalhaes UNQUALIFIED
Sinclair WaycottAustraliaXuxue Feng PROPOSAL
Maisha RulapaughJapanAmy Elsner NEGOTIATION
Ricardo GauchoFranceBernardo Dominic UNQUALIFIED
Julie StensethArgentinaAmy Elsner UNQUALIFIED
Francesco ShinkoIndiaXuxue Feng UNQUALIFIED
Salvatore StockhamGermanyAmy Elsner PROPOSAL
Wickens NestleSpainElwin Sharvill RENEWAL
Stacey MacleadAustraliaElwin Sharvill PROPOSAL
Sinclair WaycottGermanyBernardo Dominic NEGOTIATION
Sinclair WaycottSpainIoni Bowcher QUALIFIED
Juan WieserGermanyOnyama Limba QUALIFIED
Salvatore StockhamJapanAsiya Javayant PROPOSAL
Izzy GarufiRussiaAsiya Javayant QUALIFIED
Johnson SergiBrazilStephen Shaw RENEWAL
Horizontal
NameCountryRepresentativeStatus
Mayumi KolmetzFranceOnyama Limba NEW
Tony FollerAustraliaAmy Elsner UNQUALIFIED
Clifford RimCanadaIvan Magalhaes UNQUALIFIED
Clifford RimBrazilIoni Bowcher QUALIFIED
Maria MarrierFranceAnna Fali RENEWAL
David DarakjyAustraliaElwin Sharvill NEGOTIATION
Ashley DoeGermanyElwin Sharvill UNQUALIFIED
Jennifer AmigonRussiaAsiya Javayant NEW
Chavez BriddickIndiaAsiya Javayant NEGOTIATION
Mayumi KolmetzUnited KingdomBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi KolmetzJapan2026-06-09Chapman, Ross E Esq PROPOSAL26Onyama Limba
1001Mujtaba NickaBrazil2026-05-26Feltz Printing Service RENEWAL55Elwin Sharvill
1002Ashley DoeGermany2026-05-31King, Christopher A Esq NEGOTIATION17Ivan Magalhaes
1003Kaitlin OstroskyIndia2026-06-05King, Christopher A Esq QUALIFIED21Xuxue Feng
1004James ButtFrance2026-06-03Morlong Associates NEGOTIATION99Bernardo Dominic
1005Francesco ShinkoArgentina2026-06-09King, Christopher A Esq NEW19Bernardo Dominic
1006Tony FollerJapan2026-05-28Rousseaux, Michael Esq NEGOTIATION64Elwin Sharvill
1007Claire TollnerSpain2026-06-13Dorl, James J Esq PROPOSAL20Ivan Magalhaes
1008Isabel BowleyItaly2026-06-14Commercial Press UNQUALIFIED87Ioni Bowcher
1009Wickens NestleArgentina2026-06-08Feiner Bros NEW82Ioni Bowcher
1010Wickens NestleArgentina2026-05-27Chanay, Jeffrey A Esq PROPOSAL65Elwin Sharvill
1011Cody SaylorsUnited Kingdom2026-05-29Buckley Miller Wright UNQUALIFIED37Xuxue Feng
1012David DarakjyGermany2026-05-23Rangoni Of Florence QUALIFIED7Anna Fali
1013Leon OldroydArgentina2026-06-19Chemel, James L Cpa NEW19Anna Fali
1014Mayumi KolmetzArgentina2026-06-06Feltz Printing Service UNQUALIFIED73Bernardo Dominic
1015Emily WhobreyFrance2026-05-27Truhlar And Truhlar Attys QUALIFIED46Onyama Limba
1016Clifford RimJapan2026-06-09Morlong Associates NEGOTIATION4Ioni Bowcher
1017Wickens NestleBrazil2026-06-16Feltz Printing Service QUALIFIED4Anna Fali
1018Izzy GarufiAustralia2026-06-17Rangoni Of Florence NEW77Elwin Sharvill
1019James ButtArgentina2026-06-13Chanay, Jeffrey A Esq NEGOTIATION85Onyama Limba
1020Isabel BowleyCanada2026-06-07Chapman, Ross E Esq QUALIFIED10Amy Elsner
1021Alejandro PerinSpain2026-06-02Feiner Bros QUALIFIED53Asiya Javayant
1022Ivar PaprockiArgentina2026-06-06Chanay, Jeffrey A Esq PROPOSAL29Elwin Sharvill
1023James ButtIndia2026-05-26King, Christopher A Esq RENEWAL87Onyama Limba
1024Cody SaylorsJapan2026-06-06Benton, John B Jr RENEWAL97Xuxue Feng
1025Leja CaldareraArgentina2026-06-06Dorl, James J Esq NEGOTIATION56Bernardo Dominic
1026James ButtRussia2026-05-24Chapman, Ross E Esq PROPOSAL34Onyama Limba
1027Octavia MaletFrance2026-05-26Printing Dimensions NEW15Stephen Shaw
1028Murillo MaletAustralia2026-06-02Truhlar And Truhlar Attys QUALIFIED60Ivan Magalhaes
1029James ButtIndia2026-06-01Feltz Printing Service QUALIFIED86Anna Fali
1030Adams MorascaRussia2026-05-23Rangoni Of Florence NEW23Asiya Javayant
1031Kaitlin OstroskyCanada2026-06-15Benton, John B Jr RENEWAL72Onyama Limba
1032Aika InouyeGermany2026-05-27Morlong Associates QUALIFIED80Xuxue Feng
1033Salvatore StockhamGermany2026-06-12Benton, John B Jr QUALIFIED49Stephen Shaw
1034Faith GillianCanada2026-05-27Feltz Printing Service QUALIFIED61Amy Elsner
1035Darci PoquetteArgentina2026-06-09Feltz Printing Service RENEWAL49Anna Fali
1036Clifford RimFrance2026-06-19Dorl, James J Esq NEGOTIATION17Amy Elsner
1037Silvio SlusarskiSpain2026-05-26Chanay, Jeffrey A Esq PROPOSAL62Bernardo Dominic
1038Aika InouyeUnited Kingdom2026-05-27Morlong Associates QUALIFIED47Onyama Limba
1039Clifford RimUnited Kingdom2026-06-08Commercial Press UNQUALIFIED18Onyama Limba
1040Morrow RutaCanada2026-05-23Benton, John B Jr RENEWAL26Amy Elsner
1041Nicolas IturbideBrazil2026-06-09Chanay, Jeffrey A Esq RENEWAL84Anna Fali
1042Nicolas IturbideIndia2026-06-19Benton, John B Jr UNQUALIFIED30Amy Elsner
1043Ivar PaprockiFrance2026-06-05Feltz Printing Service PROPOSAL41Bernardo Dominic
1044Jefferson SchemmerArgentina2026-06-17Chanay, Jeffrey A Esq RENEWAL61Anna Fali
1045Sinclair WaycottIndia2026-05-29Truhlar And Truhlar Attys RENEWAL5Bernardo Dominic
1046Misaki RoysterItaly2026-06-18Feltz Printing Service RENEWAL41Amy Elsner
1047Rodrigues CampainJapan2026-06-18King, Christopher A Esq PROPOSAL98Elwin Sharvill
1048Leon OldroydBrazil2026-06-04Printing Dimensions PROPOSAL94Asiya Javayant
1049Silvio SlusarskiAustralia2026-05-25Benton, John B Jr NEGOTIATION83Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Munro FerenczItalyAnna Fali UNQUALIFIED
Leja CaldareraJapanAsiya Javayant RENEWAL
David DarakjyJapanAsiya Javayant PROPOSAL
Murillo MaletGermanyBernardo Dominic PROPOSAL
Misaki RoysterIndiaBernardo Dominic NEGOTIATION
Deepesh ChuiCanadaOnyama Limba QUALIFIED
Johnson SergiFranceIoni Bowcher NEGOTIATION
Rodrigues CampainJapanOnyama Limba NEW
Maisha RulapaughJapanIvan Magalhaes PROPOSAL
Ricardo GauchoBrazilElwin Sharvill UNQUALIFIED
Octavia MaletGermanyIoni Bowcher NEGOTIATION
Aditya KuskoItalyElwin Sharvill UNQUALIFIED
Ashley DoeSpainAnna Fali QUALIFIED
Murillo MaletArgentinaAsiya Javayant UNQUALIFIED
Jefferson SchemmerArgentinaXuxue Feng RENEWAL
Murillo MaletBrazilAmy Elsner QUALIFIED
Nicolas IturbideItalyIvan Magalhaes NEW
Alejandro PerinFranceAsiya Javayant QUALIFIED
Isabel BowleyCanadaXuxue Feng NEW
Julie StensethCanadaBernardo Dominic UNQUALIFIED
Julie StensethCanadaXuxue Feng PROPOSAL
Mayumi KolmetzArgentinaIvan Magalhaes NEGOTIATION
Emily WhobreyBrazilAsiya Javayant QUALIFIED
Aditya KuskoSpainStephen Shaw RENEWAL
Aditya KuskoAustraliaOnyama Limba UNQUALIFIED
Kadeem FlosiFranceOnyama Limba UNQUALIFIED
Faith GillianCanadaElwin Sharvill QUALIFIED
Kadeem FlosiUnited KingdomBernardo Dominic PROPOSAL
Adams MorascaFranceXuxue Feng RENEWAL
Antonio CaudyBrazilBernardo Dominic NEW
James ButtItalyXuxue Feng UNQUALIFIED
Jennifer AmigonUnited KingdomXuxue Feng QUALIFIED
Deepesh ChuiIndiaStephen Shaw PROPOSAL
Maisha RulapaughArgentinaOnyama Limba RENEWAL
Costa DilliardAustraliaAsiya Javayant QUALIFIED
Salvatore StockhamRussiaStephen Shaw PROPOSAL
Maisha RulapaughArgentinaIvan Magalhaes PROPOSAL
Emily WhobreyItalyAmy Elsner QUALIFIED
Leja CaldareraJapanAsiya Javayant QUALIFIED
Faith GillianFranceElwin Sharvill RENEWAL
Mayumi KolmetzSpainStephen Shaw UNQUALIFIED
Jennifer AmigonJapanElwin Sharvill UNQUALIFIED
David DarakjyJapanElwin Sharvill PROPOSAL
Darci PoquetteGermanyAnna Fali PROPOSAL
Tony FollerBrazilBernardo Dominic PROPOSAL
Munro FerenczFranceAsiya Javayant NEW
Leon OldroydIndiaAnna Fali NEGOTIATION
Clifford RimSpainOnyama Limba QUALIFIED
Silvio SlusarskiJapanIvan Magalhaes UNQUALIFIED
Aruna FigeroaCanadaAnna Fali NEGOTIATION
Frozen Columns
Name
Cody Saylors
Mayumi Kolmetz
Munro Ferencz
Faith Gillian
Isabel Bowley
Leon Oldroyd
James Butt
Faith Gillian
Greenwood Bolognia
Juan Wieser
Aika Inouye
Chavez Briddick
Izzy Garufi
Ivar Paprocki
Cody Saylors
Ivar Paprocki
Francesco Shinko
Isabel Bowley
Leja Caldarera
Costa Dilliard
Clifford Rim
Greenwood Bolognia
Izzy Garufi
Isabel Bowley
Smith Glick
Faith Gillian
Adams Morasca
Jefferson Schemmer
Faith Gillian
Cody Saylors
Misaki Royster
Adams Morasca
Ivar Paprocki
David Darakjy
Greenwood Bolognia
Izzy Garufi
Adams Morasca
Julie Stenseth
Claire Tollner
Leon Oldroyd
Ivar Paprocki
Mujtaba Nicka
Maria Marrier
Stacey Maclead
Jefferson Schemmer
Morrow Ruta
Leja Caldarera
Chavez Briddick
Jefferson Schemmer
Emily Whobrey
IdCountryDate
1000Germany2026-06-14
1001Brazil2026-06-12
1002Brazil2026-06-20
1003Japan2026-06-05
1004India2026-06-02
1005Italy2026-06-21
1006Brazil2026-05-23
1007Argentina2026-06-11
1008Spain2026-06-06
1009India2026-05-25
1010Germany2026-06-21
1011Japan2026-06-03
1012Argentina2026-05-26
1013United Kingdom2026-06-02
1014India2026-06-20
1015Italy2026-05-26
1016Germany2026-05-28
1017India2026-05-24
1018United Kingdom2026-06-01
1019Argentina2026-06-17
1020France2026-06-16
1021Japan2026-05-23
1022Argentina2026-05-25
1023Argentina2026-06-11
1024Argentina2026-06-09
1025Canada2026-06-03
1026Australia2026-06-21
1027Italy2026-05-28
1028United Kingdom2026-06-18
1029Australia2026-05-24
1030Russia2026-06-01
1031Brazil2026-06-16
1032United Kingdom2026-06-07
1033Japan2026-06-06
1034United Kingdom2026-06-21
1035France2026-06-18
1036Brazil2026-06-09
1037Australia2026-05-30
1038United Kingdom2026-05-23
1039Spain2026-06-16
1040United Kingdom2026-06-12
1041United Kingdom2026-06-10
1042United Kingdom2026-06-13
1043Japan2026-05-28
1044Canada2026-06-19
1045Spain2026-06-20
1046Russia2026-05-31
1047Russia2026-06-21
1048Japan2026-06-07
1049Japan2026-06-18

On-Demand Data

NameIdCountryDate
Jefferson Schemmer1000Canada2026-06-01
Tony Foller1001Australia2026-06-14
Leon Oldroyd1002Argentina2026-06-13
Smith Glick1003Brazil2026-06-14
Mujtaba Nicka1004Japan2026-06-12
Alejandro Perin1005Canada2026-05-23
Stacey Maclead1006Germany2026-05-26
Jefferson Schemmer1007Italy2026-06-04
Kadeem Flosi1008Australia2026-06-14
Silvio Slusarski1009Australia2026-05-25
James Butt1010Japan2026-05-30
Greenwood Bolognia1011Germany2026-06-07
Jeanfrancois Venere1012Italy2026-06-21
Smith Glick1013Russia2026-06-20
Silvio Slusarski1014Argentina2026-06-19
Darci Poquette1015India2026-06-08
Leja Caldarera1016Brazil2026-06-15
Nicolas Iturbide1017Germany2026-06-03
Claire Tollner1018Italy2026-06-21
Greenwood Bolognia1019Russia2026-06-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony FollerAustraliaAsiya Javayant QUALIFIED
Mujtaba NickaJapanOnyama Limba PROPOSAL
Aruna FigeroaArgentinaOnyama Limba QUALIFIED
Maisha RulapaughItalyElwin Sharvill NEW
Stacey MacleadIndiaAsiya Javayant QUALIFIED
Faith GillianBrazilStephen Shaw NEW
Faith GillianCanadaXuxue Feng UNQUALIFIED
Antonio CaudyBrazilXuxue Feng UNQUALIFIED
Adams MorascaUnited KingdomIvan Magalhaes NEW
Stacey MacleadIndiaElwin Sharvill PROPOSAL
Jefferson SchemmerGermanyOnyama Limba NEGOTIATION
Chavez BriddickRussiaXuxue Feng PROPOSAL
Smith GlickBrazilIvan Magalhaes UNQUALIFIED
Juan WieserAustraliaXuxue Feng NEGOTIATION
Ricardo GauchoJapanElwin Sharvill QUALIFIED
Ivar PaprockiGermanyElwin Sharvill PROPOSAL
Deepesh ChuiUnited KingdomIvan Magalhaes UNQUALIFIED
Ricardo GauchoItalyStephen Shaw NEGOTIATION
Jeanfrancois VenereRussiaStephen Shaw RENEWAL
Faith GillianJapanAnna Fali QUALIFIED
Leja CaldareraUnited KingdomBernardo Dominic RENEWAL
Isabel BowleyGermanyBernardo Dominic QUALIFIED
Ivar PaprockiSpainAmy Elsner PROPOSAL
Faith GillianFranceBernardo Dominic NEW
Maisha RulapaughCanadaAnna Fali PROPOSAL
Smith GlickIndiaStephen Shaw UNQUALIFIED
Julie StensethIndiaAmy Elsner NEW
Leja CaldareraCanadaBernardo Dominic PROPOSAL
Misaki RoysterRussiaStephen Shaw NEW
Nicolas IturbideCanadaAsiya Javayant NEW
Mujtaba NickaIndiaStephen Shaw UNQUALIFIED
Faith GillianCanadaIoni Bowcher UNQUALIFIED
Greenwood BologniaItalyAsiya Javayant PROPOSAL
Ivar PaprockiBrazilOnyama Limba RENEWAL
Arvin AlbaresSpainStephen Shaw QUALIFIED
Leon OldroydAustraliaIoni Bowcher QUALIFIED
Claire TollnerFranceIoni Bowcher RENEWAL
Costa DilliardJapanBernardo Dominic UNQUALIFIED
Kadeem FlosiIndiaOnyama Limba NEW
Juan WieserJapanStephen Shaw 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>