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
Francesco ShinkoRussiaOnyama Limba QUALIFIED
Darci PoquetteJapanAnna Fali NEGOTIATION
Leon OldroydUnited KingdomXuxue Feng NEW
Deepesh ChuiAustraliaAnna Fali RENEWAL
Izzy GarufiAustraliaXuxue Feng RENEWAL
Antonio CaudyIndiaAmy Elsner UNQUALIFIED
Rodrigues CampainFranceOnyama Limba QUALIFIED
Kadeem FlosiBrazilAsiya Javayant QUALIFIED
Leon OldroydAustraliaIoni Bowcher NEW
Adams MorascaCanadaBernardo Dominic NEW
Jefferson SchemmerUnited KingdomAnna Fali PROPOSAL
Jones VocelkaSpainElwin Sharvill UNQUALIFIED
Silvio SlusarskiCanadaAmy Elsner RENEWAL
Faith GillianCanadaAnna Fali NEGOTIATION
Costa DilliardFranceElwin Sharvill UNQUALIFIED
Tony FollerGermanyAmy Elsner PROPOSAL
Jennifer AmigonFranceBernardo Dominic PROPOSAL
Wickens NestleRussiaOnyama Limba RENEWAL
Stacey MacleadItalyOnyama Limba RENEWAL
Munro FerenczUnited KingdomXuxue Feng RENEWAL
Greenwood BologniaItalyElwin Sharvill NEGOTIATION
Arvin AlbaresItalyIoni Bowcher UNQUALIFIED
Jennifer AmigonBrazilXuxue Feng NEW
Deepesh ChuiIndiaIoni Bowcher PROPOSAL
Smith GlickFranceIvan Magalhaes NEGOTIATION
Arvin AlbaresIndiaIoni Bowcher PROPOSAL
Murillo MaletAustraliaAmy Elsner UNQUALIFIED
Clifford RimAustraliaStephen Shaw NEGOTIATION
Jefferson SchemmerItalyStephen Shaw NEGOTIATION
Maisha RulapaughFranceIoni Bowcher PROPOSAL
Mayumi KolmetzItalyAmy Elsner NEGOTIATION
Sinclair WaycottRussiaIvan Magalhaes UNQUALIFIED
Silvio SlusarskiBrazilIvan Magalhaes NEW
Faith GillianJapanAmy Elsner NEW
Silvio SlusarskiCanadaElwin Sharvill UNQUALIFIED
Jennifer AmigonItalyXuxue Feng NEW
Kadeem FlosiArgentinaAmy Elsner NEW
Kaitlin OstroskyBrazilXuxue Feng NEW
Julie StensethSpainIvan Magalhaes NEGOTIATION
Salvatore StockhamCanadaStephen Shaw QUALIFIED
Leon OldroydRussiaStephen Shaw NEGOTIATION
Leon OldroydIndiaIvan Magalhaes QUALIFIED
Faith GillianJapanAnna Fali PROPOSAL
Alejandro PerinIndiaElwin Sharvill QUALIFIED
Misaki RoysterIndiaIoni Bowcher NEW
Chavez BriddickArgentinaAsiya Javayant UNQUALIFIED
Sinclair WaycottFranceIoni Bowcher QUALIFIED
Octavia MaletBrazilXuxue Feng UNQUALIFIED
Alejandro PerinSpainIvan Magalhaes UNQUALIFIED
Murillo MaletItalyAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Chavez BriddickJapanStephen Shaw NEGOTIATION
Maria MarrierRussiaXuxue Feng QUALIFIED
Morrow RutaAustraliaElwin Sharvill RENEWAL
Munro FerenczCanadaBernardo Dominic QUALIFIED
Juan WieserItalyOnyama Limba UNQUALIFIED
Adams MorascaArgentinaIoni Bowcher UNQUALIFIED
Murillo MaletIndiaElwin Sharvill NEW
Antonio CaudyFranceElwin Sharvill UNQUALIFIED
Deepesh ChuiUnited KingdomElwin Sharvill UNQUALIFIED
Mayumi KolmetzAustraliaStephen Shaw UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha RulapaughItaly2026-05-21Morlong Associates NEGOTIATION42Xuxue Feng
1001Mayumi KolmetzBrazil2026-06-05Morlong Associates PROPOSAL18Anna Fali
1002Clifford RimAustralia2026-05-15Chemel, James L Cpa NEW87Ivan Magalhaes
1003Kaitlin OstroskyArgentina2026-06-01Rangoni Of Florence NEGOTIATION74Stephen Shaw
1004Octavia MaletIndia2026-06-05Commercial Press UNQUALIFIED47Onyama Limba
1005Jefferson SchemmerIndia2026-05-22Feltz Printing Service NEGOTIATION15Xuxue Feng
1006Jefferson SchemmerBrazil2026-06-06Commercial Press NEGOTIATION47Asiya Javayant
1007Darci PoquetteFrance2026-06-06Morlong Associates PROPOSAL25Xuxue Feng
1008Munro FerenczJapan2026-05-15Benton, John B Jr NEGOTIATION82Onyama Limba
1009Francesco ShinkoRussia2026-05-25Dorl, James J Esq UNQUALIFIED85Ioni Bowcher
1010Darci PoquetteArgentina2026-05-11King, Christopher A Esq PROPOSAL93Onyama Limba
1011Faith GillianGermany2026-05-29Dorl, James J Esq NEW7Xuxue Feng
1012Maisha RulapaughUnited Kingdom2026-05-10Chanay, Jeffrey A Esq UNQUALIFIED87Ioni Bowcher
1013Aika InouyeIndia2026-06-05Feltz Printing Service UNQUALIFIED42Stephen Shaw
1014Claire TollnerGermany2026-05-20Morlong Associates PROPOSAL47Anna Fali
1015Darci PoquetteCanada2026-05-29Feltz Printing Service UNQUALIFIED19Bernardo Dominic
1016Misaki RoysterAustralia2026-05-30Commercial Press RENEWAL82Onyama Limba
1017Greenwood BologniaIndia2026-05-24Chapman, Ross E Esq PROPOSAL78Onyama Limba
1018Wickens NestleAustralia2026-05-23Rangoni Of Florence QUALIFIED86Asiya Javayant
1019Kaitlin OstroskyBrazil2026-06-03Benton, John B Jr QUALIFIED52Amy Elsner
1020Cody SaylorsBrazil2026-05-31King, Christopher A Esq NEGOTIATION74Anna Fali
1021James ButtArgentina2026-05-27Benton, John B Jr UNQUALIFIED11Xuxue Feng
1022Arvin AlbaresItaly2026-05-10Dorl, James J Esq QUALIFIED93Ioni Bowcher
1023Octavia MaletArgentina2026-05-20Printing Dimensions RENEWAL0Bernardo Dominic
1024Adams MorascaFrance2026-05-15Truhlar And Truhlar Attys PROPOSAL44Stephen Shaw
1025Cody SaylorsBrazil2026-06-04Buckley Miller Wright PROPOSAL86Stephen Shaw
1026Juan WieserAustralia2026-05-23Chapman, Ross E Esq NEGOTIATION45Bernardo Dominic
1027Murillo MaletJapan2026-06-05Dorl, James J Esq NEGOTIATION47Amy Elsner
1028Juan WieserArgentina2026-06-03Truhlar And Truhlar Attys NEGOTIATION56Xuxue Feng
1029Maria MarrierBrazil2026-05-13Truhlar And Truhlar Attys PROPOSAL31Onyama Limba
1030Kadeem FlosiArgentina2026-05-26Buckley Miller Wright NEGOTIATION53Ivan Magalhaes
1031Juan WieserItaly2026-05-19Chemel, James L Cpa NEW82Anna Fali
1032Aruna FigeroaFrance2026-05-10Rangoni Of Florence PROPOSAL4Ivan Magalhaes
1033Morrow RutaRussia2026-06-04King, Christopher A Esq QUALIFIED40Elwin Sharvill
1034Arvin AlbaresArgentina2026-06-04Benton, John B Jr NEW2Ioni Bowcher
1035Leon OldroydArgentina2026-06-08Dorl, James J Esq PROPOSAL46Ivan Magalhaes
1036Morrow RutaRussia2026-05-30Chapman, Ross E Esq PROPOSAL76Amy Elsner
1037Aditya KuskoCanada2026-05-24Chapman, Ross E Esq UNQUALIFIED72Elwin Sharvill
1038Antonio CaudyArgentina2026-05-31Commercial Press PROPOSAL72Onyama Limba
1039Cody SaylorsBrazil2026-05-20Printing Dimensions QUALIFIED9Onyama Limba
1040Clifford RimItaly2026-06-06Truhlar And Truhlar Attys NEW35Bernardo Dominic
1041Antonio CaudyRussia2026-05-26Feiner Bros PROPOSAL43Xuxue Feng
1042Johnson SergiBrazil2026-05-11Chanay, Jeffrey A Esq NEW57Elwin Sharvill
1043Smith GlickRussia2026-05-20Commercial Press NEGOTIATION0Elwin Sharvill
1044Salvatore StockhamAustralia2026-05-26Printing Dimensions NEGOTIATION28Onyama Limba
1045Morrow RutaItaly2026-06-06Feltz Printing Service NEGOTIATION30Asiya Javayant
1046Octavia MaletSpain2026-05-26Rousseaux, Michael Esq NEGOTIATION16Elwin Sharvill
1047Munro FerenczUnited Kingdom2026-06-03Dorl, James J Esq NEGOTIATION34Stephen Shaw
1048Isabel BowleyGermany2026-06-04Morlong Associates RENEWAL38Ioni Bowcher
1049Izzy GarufiFrance2026-06-04Buckley Miller Wright NEGOTIATION71Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereBrazilBernardo Dominic UNQUALIFIED
Jones VocelkaArgentinaAsiya Javayant PROPOSAL
Emily WhobreyIndiaElwin Sharvill NEGOTIATION
Ricardo GauchoGermanyXuxue Feng QUALIFIED
Aruna FigeroaUnited KingdomIoni Bowcher NEGOTIATION
Jennifer AmigonRussiaOnyama Limba NEW
Misaki RoysterGermanyElwin Sharvill NEGOTIATION
Jeanfrancois VenereJapanBernardo Dominic QUALIFIED
Izzy GarufiUnited KingdomBernardo Dominic NEW
Darci PoquetteBrazilAmy Elsner RENEWAL
Ricardo GauchoRussiaAmy Elsner QUALIFIED
Isabel BowleyItalyAnna Fali NEGOTIATION
Kaitlin OstroskyFranceIvan Magalhaes PROPOSAL
Johnson SergiBrazilAnna Fali PROPOSAL
Clifford RimBrazilStephen Shaw PROPOSAL
Tony FollerRussiaIvan Magalhaes QUALIFIED
Silvio SlusarskiRussiaAnna Fali UNQUALIFIED
Cody SaylorsRussiaElwin Sharvill PROPOSAL
Kadeem FlosiItalyElwin Sharvill RENEWAL
Misaki RoysterArgentinaElwin Sharvill QUALIFIED
Sinclair WaycottGermanyIoni Bowcher QUALIFIED
James ButtArgentinaAmy Elsner QUALIFIED
Murillo MaletCanadaElwin Sharvill QUALIFIED
Maria MarrierSpainStephen Shaw NEGOTIATION
Maisha RulapaughGermanyIvan Magalhaes RENEWAL
Emily WhobreyRussiaAmy Elsner QUALIFIED
Misaki RoysterAustraliaBernardo Dominic NEGOTIATION
Jefferson SchemmerBrazilIoni Bowcher NEGOTIATION
Leja CaldareraUnited KingdomIvan Magalhaes UNQUALIFIED
Clifford RimIndiaOnyama Limba QUALIFIED
Johnson SergiFranceAmy Elsner PROPOSAL
Greenwood BologniaItalyAmy Elsner QUALIFIED
James ButtArgentinaAmy Elsner QUALIFIED
Antonio CaudyGermanyOnyama Limba NEGOTIATION
Johnson SergiBrazilElwin Sharvill UNQUALIFIED
Morrow RutaUnited KingdomAsiya Javayant NEGOTIATION
Nicolas IturbideUnited KingdomAnna Fali UNQUALIFIED
Stacey MacleadArgentinaAnna Fali UNQUALIFIED
Johnson SergiAustraliaBernardo Dominic UNQUALIFIED
Greenwood BologniaAustraliaOnyama Limba NEW
David DarakjySpainXuxue Feng PROPOSAL
Johnson SergiArgentinaIoni Bowcher NEW
Emily WhobreyRussiaStephen Shaw NEGOTIATION
Maria MarrierItalyOnyama Limba UNQUALIFIED
Tony FollerRussiaAnna Fali RENEWAL
Jennifer AmigonJapanStephen Shaw PROPOSAL
Morrow RutaAustraliaIoni Bowcher NEW
Leja CaldareraAustraliaAmy Elsner UNQUALIFIED
Aika InouyeCanadaAmy Elsner NEGOTIATION
Munro FerenczIndiaAmy Elsner QUALIFIED
Frozen Columns
Name
Wickens Nestle
Darci Poquette
Kaitlin Ostrosky
Darci Poquette
Ashley Doe
Isabel Bowley
Faith Gillian
Rodrigues Campain
Faith Gillian
Arvin Albares
Kaitlin Ostrosky
Clifford Rim
James Butt
Ricardo Gaucho
Faith Gillian
Emily Whobrey
Ivar Paprocki
Morrow Ruta
Misaki Royster
Stacey Maclead
Costa Dilliard
Juan Wieser
Aruna Figeroa
Jennifer Amigon
Leon Oldroyd
Kaitlin Ostrosky
Jones Vocelka
Antonio Caudy
Greenwood Bolognia
Chavez Briddick
Juan Wieser
Jefferson Schemmer
Murillo Malet
Greenwood Bolognia
Ricardo Gaucho
Juan Wieser
Aditya Kusko
Sinclair Waycott
Ivar Paprocki
Faith Gillian
Darci Poquette
Wickens Nestle
David Darakjy
Chavez Briddick
Rodrigues Campain
Misaki Royster
Ivar Paprocki
Aruna Figeroa
Morrow Ruta
Adams Morasca
IdCountryDate
1000United Kingdom2026-05-28
1001Spain2026-05-25
1002India2026-05-30
1003Canada2026-05-17
1004Argentina2026-05-27
1005Argentina2026-05-16
1006Italy2026-05-14
1007India2026-06-04
1008Brazil2026-05-10
1009Argentina2026-06-05
1010Australia2026-05-19
1011Argentina2026-06-02
1012India2026-05-24
1013Canada2026-05-23
1014Japan2026-05-24
1015Argentina2026-05-23
1016Argentina2026-05-10
1017Spain2026-05-27
1018Brazil2026-06-07
1019Australia2026-05-18
1020Brazil2026-05-25
1021France2026-06-07
1022Germany2026-05-28
1023Germany2026-05-27
1024Russia2026-05-17
1025Canada2026-05-24
1026United Kingdom2026-05-31
1027Argentina2026-06-02
1028Germany2026-05-17
1029Germany2026-06-05
1030India2026-05-29
1031Japan2026-05-20
1032Japan2026-06-03
1033Russia2026-05-20
1034Argentina2026-06-02
1035Spain2026-05-17
1036Canada2026-05-17
1037Canada2026-05-19
1038Argentina2026-05-16
1039Brazil2026-05-21
1040Argentina2026-05-22
1041Spain2026-05-16
1042Spain2026-05-20
1043Germany2026-05-13
1044France2026-05-20
1045France2026-06-05
1046Japan2026-05-21
1047Argentina2026-05-31
1048Italy2026-05-11
1049Russia2026-05-22

On-Demand Data

NameIdCountryDate
Ivar Paprocki1000Japan2026-05-25
Aditya Kusko1001Spain2026-05-23
Nicolas Iturbide1002Australia2026-05-29
Deepesh Chui1003United Kingdom2026-05-20
Maisha Rulapaugh1004Japan2026-06-01
Leon Oldroyd1005Japan2026-06-05
Silvio Slusarski1006Canada2026-05-24
Chavez Briddick1007Argentina2026-05-16
Munro Ferencz1008India2026-06-03
Stacey Maclead1009Argentina2026-05-24
Deepesh Chui1010Argentina2026-06-05
Julie Stenseth1011France2026-05-15
Octavia Malet1012Spain2026-06-02
Cody Saylors1013Canada2026-05-14
Ivar Paprocki1014Spain2026-06-08
Leja Caldarera1015Spain2026-05-24
Faith Gillian1016Argentina2026-05-18
Maisha Rulapaugh1017Canada2026-05-22
Wickens Nestle1018India2026-05-11
Clifford Rim1019Russia2026-06-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Rodrigues CampainArgentinaIvan Magalhaes NEGOTIATION
Emily WhobreyGermanyAnna Fali NEW
Maria MarrierFranceAsiya Javayant PROPOSAL
Emily WhobreyBrazilIvan Magalhaes RENEWAL
Aditya KuskoRussiaOnyama Limba NEW
Jones VocelkaItalyXuxue Feng NEGOTIATION
Leja CaldareraAustraliaAmy Elsner NEGOTIATION
Arvin AlbaresCanadaAnna Fali PROPOSAL
Silvio SlusarskiAustraliaXuxue Feng QUALIFIED
Johnson SergiJapanIoni Bowcher QUALIFIED
Munro FerenczRussiaElwin Sharvill QUALIFIED
Antonio CaudyIndiaIvan Magalhaes NEW
Claire TollnerArgentinaIoni Bowcher UNQUALIFIED
Wickens NestleRussiaAsiya Javayant RENEWAL
Emily WhobreyCanadaAsiya Javayant QUALIFIED
Greenwood BologniaAustraliaOnyama Limba RENEWAL
Arvin AlbaresFranceIoni Bowcher RENEWAL
Aditya KuskoRussiaBernardo Dominic UNQUALIFIED
Nicolas IturbideUnited KingdomIvan Magalhaes NEW
Juan WieserArgentinaXuxue Feng NEW
Mujtaba NickaBrazilXuxue Feng QUALIFIED
Julie StensethItalyElwin Sharvill NEW
Jones VocelkaBrazilXuxue Feng QUALIFIED
Nicolas IturbideCanadaStephen Shaw NEGOTIATION
Johnson SergiBrazilAmy Elsner PROPOSAL
Isabel BowleyAustraliaStephen Shaw UNQUALIFIED
Julie StensethItalyStephen Shaw QUALIFIED
Octavia MaletFranceAnna Fali QUALIFIED
Chavez BriddickRussiaAmy Elsner NEW
Izzy GarufiItalyAsiya Javayant NEW
Nicolas IturbideSpainIoni Bowcher NEW
Cody SaylorsUnited KingdomIoni Bowcher QUALIFIED
Tony FollerIndiaAnna Fali RENEWAL
Smith GlickItalyAsiya Javayant RENEWAL
Nicolas IturbideJapanXuxue Feng RENEWAL
Mayumi KolmetzFranceXuxue Feng NEGOTIATION
Darci PoquetteCanadaXuxue Feng QUALIFIED
Leja CaldareraGermanyXuxue Feng PROPOSAL
Jefferson SchemmerFranceIoni Bowcher RENEWAL
Greenwood BologniaArgentinaStephen Shaw UNQUALIFIED

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