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
Rodrigues CampainCanadaOnyama Limba UNQUALIFIED
Maria MarrierFranceAmy Elsner PROPOSAL
Darci PoquetteGermanyOnyama Limba NEGOTIATION
Faith GillianGermanyAmy Elsner QUALIFIED
Mujtaba NickaCanadaIoni Bowcher NEW
Maisha RulapaughItalyXuxue Feng QUALIFIED
Julie StensethArgentinaXuxue Feng UNQUALIFIED
Antonio CaudyCanadaAmy Elsner QUALIFIED
Octavia MaletUnited KingdomElwin Sharvill UNQUALIFIED
Aruna FigeroaUnited KingdomAsiya Javayant RENEWAL
Kaitlin OstroskyGermanyBernardo Dominic RENEWAL
Chavez BriddickAustraliaAnna Fali UNQUALIFIED
Nicolas IturbideFranceAsiya Javayant QUALIFIED
Johnson SergiJapanIvan Magalhaes UNQUALIFIED
Costa DilliardUnited KingdomIoni Bowcher NEW
Jeanfrancois VenereFranceBernardo Dominic QUALIFIED
Jeanfrancois VenereGermanyOnyama Limba NEW
Mujtaba NickaGermanyOnyama Limba PROPOSAL
Sinclair WaycottSpainOnyama Limba RENEWAL
Adams MorascaArgentinaAmy Elsner PROPOSAL
Chavez BriddickJapanStephen Shaw NEGOTIATION
Smith GlickIndiaAmy Elsner PROPOSAL
Claire TollnerArgentinaElwin Sharvill QUALIFIED
Adams MorascaJapanElwin Sharvill NEW
Chavez BriddickJapanAsiya Javayant PROPOSAL
Izzy GarufiIndiaAnna Fali RENEWAL
Nicolas IturbideFranceIoni Bowcher QUALIFIED
Julie StensethSpainOnyama Limba NEGOTIATION
Smith GlickAustraliaIvan Magalhaes QUALIFIED
Juan WieserUnited KingdomIoni Bowcher NEGOTIATION
Chavez BriddickArgentinaElwin Sharvill NEW
Ashley DoeSpainOnyama Limba PROPOSAL
Jeanfrancois VenereSpainBernardo Dominic RENEWAL
Silvio SlusarskiCanadaXuxue Feng NEW
Alejandro PerinAustraliaOnyama Limba NEW
Misaki RoysterIndiaAsiya Javayant PROPOSAL
Silvio SlusarskiSpainElwin Sharvill NEGOTIATION
Clifford RimCanadaElwin Sharvill PROPOSAL
Francesco ShinkoUnited KingdomElwin Sharvill RENEWAL
David DarakjyCanadaBernardo Dominic RENEWAL
Aika InouyeIndiaAsiya Javayant QUALIFIED
Ivar PaprockiArgentinaAmy Elsner PROPOSAL
Jeanfrancois VenereArgentinaOnyama Limba RENEWAL
Isabel BowleyBrazilStephen Shaw UNQUALIFIED
Izzy GarufiCanadaXuxue Feng RENEWAL
Jennifer AmigonIndiaOnyama Limba NEGOTIATION
Smith GlickRussiaIvan Magalhaes NEW
Ricardo GauchoFranceAnna Fali QUALIFIED
Wickens NestleArgentinaBernardo Dominic NEGOTIATION
Octavia MaletRussiaOnyama Limba NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Claire TollnerRussiaStephen Shaw NEW
Jefferson SchemmerCanadaIvan Magalhaes NEGOTIATION
Kaitlin OstroskyCanadaElwin Sharvill PROPOSAL
Aruna FigeroaSpainBernardo Dominic NEGOTIATION
Adams MorascaAustraliaBernardo Dominic PROPOSAL
Jefferson SchemmerGermanyIoni Bowcher UNQUALIFIED
Salvatore StockhamGermanyElwin Sharvill NEGOTIATION
Leon OldroydJapanIoni Bowcher PROPOSAL
James ButtJapanOnyama Limba QUALIFIED
Silvio SlusarskiRussiaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleyGermany2026-04-09Rousseaux, Michael Esq RENEWAL94Onyama Limba
1001Alejandro PerinSpain2026-04-18Chemel, James L Cpa NEGOTIATION62Bernardo Dominic
1002Wickens NestleItaly2026-04-07Feiner Bros RENEWAL52Amy Elsner
1003Izzy GarufiItaly2026-03-28King, Christopher A Esq PROPOSAL39Xuxue Feng
1004Chavez BriddickFrance2026-03-26Chemel, James L Cpa RENEWAL93Stephen Shaw
1005Munro FerenczBrazil2026-03-24Rousseaux, Michael Esq QUALIFIED33Asiya Javayant
1006Smith GlickRussia2026-04-17Benton, John B Jr NEGOTIATION14Amy Elsner
1007Isabel BowleyCanada2026-03-27Benton, John B Jr UNQUALIFIED59Ioni Bowcher
1008Octavia MaletUnited Kingdom2026-04-10Feltz Printing Service NEW78Elwin Sharvill
1009Mayumi KolmetzRussia2026-04-06Chapman, Ross E Esq NEW23Stephen Shaw
1010Munro FerenczJapan2026-03-31Feltz Printing Service RENEWAL68Xuxue Feng
1011Maria MarrierGermany2026-03-22King, Christopher A Esq NEGOTIATION23Bernardo Dominic
1012James ButtBrazil2026-04-18Printing Dimensions PROPOSAL16Stephen Shaw
1013Maisha RulapaughJapan2026-04-17Truhlar And Truhlar Attys PROPOSAL68Ivan Magalhaes
1014Julie StensethUnited Kingdom2026-03-25Feiner Bros UNQUALIFIED44Stephen Shaw
1015Emily WhobreyIndia2026-04-14Chapman, Ross E Esq QUALIFIED88Bernardo Dominic
1016Murillo MaletIndia2026-04-03Commercial Press PROPOSAL86Anna Fali
1017Jones VocelkaAustralia2026-03-30Commercial Press QUALIFIED5Amy Elsner
1018Alejandro PerinArgentina2026-04-14Feltz Printing Service UNQUALIFIED91Elwin Sharvill
1019Ricardo GauchoBrazil2026-03-28Printing Dimensions RENEWAL42Asiya Javayant
1020Wickens NestleUnited Kingdom2026-04-15Benton, John B Jr NEW50Asiya Javayant
1021Jennifer AmigonIndia2026-04-06Chemel, James L Cpa NEGOTIATION63Ivan Magalhaes
1022Chavez BriddickFrance2026-03-26Printing Dimensions QUALIFIED82Stephen Shaw
1023Isabel BowleyItaly2026-04-13Feiner Bros NEGOTIATION67Asiya Javayant
1024Maisha RulapaughArgentina2026-04-02Chapman, Ross E Esq UNQUALIFIED11Ioni Bowcher
1025Chavez BriddickSpain2026-04-04Feltz Printing Service RENEWAL88Ioni Bowcher
1026Julie StensethItaly2026-04-06Chemel, James L Cpa NEGOTIATION24Ioni Bowcher
1027Kadeem FlosiSpain2026-03-31Benton, John B Jr PROPOSAL99Amy Elsner
1028Octavia MaletSpain2026-04-15Benton, John B Jr NEW70Asiya Javayant
1029Aika InouyeCanada2026-03-22Chapman, Ross E Esq UNQUALIFIED86Elwin Sharvill
1030Salvatore StockhamSpain2026-04-16Chemel, James L Cpa NEGOTIATION27Onyama Limba
1031Julie StensethUnited Kingdom2026-04-16Commercial Press PROPOSAL69Bernardo Dominic
1032Darci PoquetteRussia2026-03-29Chanay, Jeffrey A Esq RENEWAL89Anna Fali
1033Ashley DoeBrazil2026-03-28King, Christopher A Esq UNQUALIFIED3Onyama Limba
1034Wickens NestleItaly2026-04-07Commercial Press NEW21Asiya Javayant
1035David DarakjyBrazil2026-04-17Rangoni Of Florence UNQUALIFIED14Bernardo Dominic
1036Rodrigues CampainAustralia2026-03-26Chanay, Jeffrey A Esq NEW45Anna Fali
1037Jefferson SchemmerRussia2026-04-16Buckley Miller Wright RENEWAL62Stephen Shaw
1038Arvin AlbaresUnited Kingdom2026-03-27Chemel, James L Cpa PROPOSAL21Amy Elsner
1039Aditya KuskoRussia2026-04-09King, Christopher A Esq PROPOSAL78Bernardo Dominic
1040Misaki RoysterGermany2026-04-03Rousseaux, Michael Esq RENEWAL12Bernardo Dominic
1041Nicolas IturbideGermany2026-04-17Buckley Miller Wright QUALIFIED99Amy Elsner
1042Aruna FigeroaIndia2026-03-24Rangoni Of Florence QUALIFIED59Ivan Magalhaes
1043Deepesh ChuiSpain2026-03-26Benton, John B Jr PROPOSAL68Onyama Limba
1044Faith GillianFrance2026-04-14Chapman, Ross E Esq PROPOSAL75Bernardo Dominic
1045Maisha RulapaughBrazil2026-03-22Rousseaux, Michael Esq QUALIFIED37Ioni Bowcher
1046Kaitlin OstroskyIndia2026-04-18Chemel, James L Cpa PROPOSAL74Amy Elsner
1047Johnson SergiRussia2026-04-07Chapman, Ross E Esq PROPOSAL42Amy Elsner
1048Aruna FigeroaItaly2026-03-25Chapman, Ross E Esq PROPOSAL8Asiya Javayant
1049Chavez BriddickFrance2026-04-04Morlong Associates NEGOTIATION17Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Jennifer AmigonUnited KingdomStephen Shaw RENEWAL
Kaitlin OstroskyJapanXuxue Feng PROPOSAL
James ButtIndiaAmy Elsner RENEWAL
Antonio CaudyJapanAmy Elsner NEW
Leja CaldareraArgentinaAmy Elsner NEW
Emily WhobreyGermanyIoni Bowcher NEW
Leja CaldareraBrazilAsiya Javayant UNQUALIFIED
Mujtaba NickaJapanOnyama Limba UNQUALIFIED
Smith GlickSpainElwin Sharvill NEW
Jones VocelkaRussiaOnyama Limba NEW
Misaki RoysterBrazilStephen Shaw UNQUALIFIED
Deepesh ChuiFranceAsiya Javayant UNQUALIFIED
Aditya KuskoSpainIoni Bowcher UNQUALIFIED
Ricardo GauchoUnited KingdomStephen Shaw NEW
Francesco ShinkoIndiaIvan Magalhaes NEGOTIATION
Aruna FigeroaJapanAnna Fali NEGOTIATION
Julie StensethIndiaElwin Sharvill PROPOSAL
Alejandro PerinGermanyXuxue Feng PROPOSAL
Tony FollerRussiaStephen Shaw QUALIFIED
Salvatore StockhamArgentinaStephen Shaw UNQUALIFIED
Silvio SlusarskiBrazilAmy Elsner NEW
Tony FollerSpainElwin Sharvill QUALIFIED
Aika InouyeCanadaElwin Sharvill PROPOSAL
Mayumi KolmetzArgentinaStephen Shaw NEW
Alejandro PerinGermanyAnna Fali PROPOSAL
Maria MarrierCanadaAnna Fali NEGOTIATION
Kaitlin OstroskyAustraliaXuxue Feng NEW
Aditya KuskoUnited KingdomStephen Shaw QUALIFIED
Ivar PaprockiBrazilIvan Magalhaes UNQUALIFIED
Smith GlickJapanAsiya Javayant QUALIFIED
Aika InouyeFranceAnna Fali NEW
Nicolas IturbideUnited KingdomStephen Shaw UNQUALIFIED
Jones VocelkaGermanyAsiya Javayant UNQUALIFIED
David DarakjyItalyAmy Elsner RENEWAL
Leon OldroydUnited KingdomBernardo Dominic NEGOTIATION
Ricardo GauchoIndiaXuxue Feng QUALIFIED
Izzy GarufiFranceAmy Elsner NEGOTIATION
Clifford RimAustraliaBernardo Dominic NEW
Mayumi KolmetzJapanAnna Fali PROPOSAL
Leja CaldareraCanadaElwin Sharvill RENEWAL
Costa DilliardArgentinaAnna Fali NEW
Kadeem FlosiCanadaIoni Bowcher UNQUALIFIED
Antonio CaudyCanadaOnyama Limba RENEWAL
Nicolas IturbideGermanyAnna Fali QUALIFIED
Francesco ShinkoItalyAsiya Javayant PROPOSAL
Maisha RulapaughRussiaElwin Sharvill PROPOSAL
Antonio CaudyGermanyStephen Shaw PROPOSAL
Jeanfrancois VenereRussiaAnna Fali QUALIFIED
Leja CaldareraJapanOnyama Limba UNQUALIFIED
Juan WieserUnited KingdomBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Morrow Ruta
Misaki Royster
Morrow Ruta
Munro Ferencz
David Darakjy
Adams Morasca
Silvio Slusarski
Jones Vocelka
Ricardo Gaucho
Francesco Shinko
Deepesh Chui
Juan Wieser
Silvio Slusarski
Greenwood Bolognia
Juan Wieser
Leon Oldroyd
Darci Poquette
Munro Ferencz
Silvio Slusarski
Cody Saylors
Greenwood Bolognia
Morrow Ruta
Leon Oldroyd
Stacey Maclead
Greenwood Bolognia
Deepesh Chui
Greenwood Bolognia
Tony Foller
Sinclair Waycott
Morrow Ruta
Murillo Malet
Aditya Kusko
Alejandro Perin
Ivar Paprocki
Aditya Kusko
Jennifer Amigon
Greenwood Bolognia
Ivar Paprocki
Clifford Rim
Kaitlin Ostrosky
Antonio Caudy
Jennifer Amigon
Maria Marrier
Kaitlin Ostrosky
Salvatore Stockham
Misaki Royster
Alejandro Perin
Mayumi Kolmetz
Maisha Rulapaugh
Faith Gillian
IdCountryDate
1000Spain2026-03-24
1001United Kingdom2026-04-17
1002Australia2026-04-03
1003Russia2026-04-17
1004Argentina2026-04-16
1005Canada2026-04-06
1006United Kingdom2026-04-18
1007Canada2026-03-23
1008Argentina2026-04-07
1009Brazil2026-04-16
1010Spain2026-04-16
1011Argentina2026-03-31
1012Spain2026-03-23
1013Italy2026-03-26
1014Argentina2026-04-13
1015Spain2026-03-30
1016Australia2026-04-09
1017Italy2026-04-06
1018Canada2026-04-05
1019Argentina2026-03-24
1020Argentina2026-03-28
1021Germany2026-04-04
1022India2026-03-22
1023Canada2026-04-12
1024Brazil2026-04-14
1025Spain2026-03-27
1026Italy2026-04-05
1027United Kingdom2026-04-07
1028Germany2026-04-07
1029Australia2026-04-03
1030Argentina2026-03-23
1031Italy2026-03-22
1032Italy2026-04-02
1033Russia2026-04-20
1034Brazil2026-04-06
1035United Kingdom2026-04-13
1036Spain2026-04-09
1037United Kingdom2026-03-22
1038Japan2026-03-27
1039Germany2026-04-07
1040Germany2026-03-23
1041Japan2026-03-24
1042India2026-04-07
1043Italy2026-04-04
1044United Kingdom2026-03-27
1045Australia2026-04-20
1046Brazil2026-03-23
1047United Kingdom2026-03-31
1048Canada2026-04-03
1049United Kingdom2026-04-01

On-Demand Data

NameIdCountryDate
Claire Tollner1000Germany2026-04-10
Mayumi Kolmetz1001Germany2026-04-01
Kadeem Flosi1002Canada2026-04-04
Isabel Bowley1003Russia2026-04-11
Francesco Shinko1004Brazil2026-03-29
Costa Dilliard1005Russia2026-03-29
Jones Vocelka1006India2026-04-17
Nicolas Iturbide1007Canada2026-03-24
Misaki Royster1008United Kingdom2026-04-14
Maisha Rulapaugh1009Italy2026-03-26
Smith Glick1010Argentina2026-04-14
Clifford Rim1011Australia2026-03-22
Tony Foller1012Brazil2026-03-24
Francesco Shinko1013Brazil2026-03-29
Juan Wieser1014Canada2026-04-18
Silvio Slusarski1015Canada2026-04-09
Isabel Bowley1016Japan2026-04-18
Smith Glick1017Japan2026-04-09
Ashley Doe1018Canada2026-04-14
Aditya Kusko1019United Kingdom2026-04-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Johnson SergiGermanyIoni Bowcher QUALIFIED
Claire TollnerCanadaElwin Sharvill PROPOSAL
Misaki RoysterGermanyBernardo Dominic RENEWAL
Silvio SlusarskiCanadaBernardo Dominic UNQUALIFIED
Aika InouyeFranceXuxue Feng UNQUALIFIED
Antonio CaudyFranceAmy Elsner PROPOSAL
Morrow RutaAustraliaAnna Fali PROPOSAL
Kaitlin OstroskyAustraliaXuxue Feng NEGOTIATION
Emily WhobreyItalyAmy Elsner UNQUALIFIED
Arvin AlbaresUnited KingdomAnna Fali NEW
Ivar PaprockiItalyXuxue Feng NEW
Francesco ShinkoSpainAnna Fali NEW
Julie StensethUnited KingdomBernardo Dominic QUALIFIED
Munro FerenczBrazilIoni Bowcher NEW
Costa DilliardFranceBernardo Dominic QUALIFIED
Misaki RoysterItalyBernardo Dominic NEW
Izzy GarufiArgentinaIvan Magalhaes PROPOSAL
Cody SaylorsSpainAmy Elsner NEW
James ButtCanadaAmy Elsner NEGOTIATION
Smith GlickGermanyIvan Magalhaes NEGOTIATION
Jennifer AmigonAustraliaAsiya Javayant QUALIFIED
Stacey MacleadSpainAnna Fali QUALIFIED
Stacey MacleadFranceAmy Elsner QUALIFIED
Arvin AlbaresSpainOnyama Limba QUALIFIED
Octavia MaletUnited KingdomElwin Sharvill RENEWAL
Julie StensethFranceAmy Elsner NEW
Maria MarrierItalyAnna Fali UNQUALIFIED
Salvatore StockhamAustraliaStephen Shaw RENEWAL
Wickens NestleUnited KingdomStephen Shaw UNQUALIFIED
Munro FerenczUnited KingdomBernardo Dominic NEW
Aika InouyeRussiaStephen Shaw NEW
Faith GillianUnited KingdomAsiya Javayant PROPOSAL
Adams MorascaFranceStephen Shaw UNQUALIFIED
Leon OldroydRussiaIoni Bowcher UNQUALIFIED
Chavez BriddickBrazilAmy Elsner NEGOTIATION
Maria MarrierSpainXuxue Feng QUALIFIED
Francesco ShinkoItalyIvan Magalhaes RENEWAL
Ashley DoeIndiaIoni Bowcher PROPOSAL
Greenwood BologniaSpainElwin Sharvill NEW
Claire TollnerArgentinaXuxue Feng 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>