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
Octavia MaletSpainAsiya Javayant QUALIFIED
Jennifer AmigonJapanIvan Magalhaes NEGOTIATION
Emily WhobreyUnited KingdomElwin Sharvill QUALIFIED
Munro FerenczArgentinaOnyama Limba RENEWAL
Faith GillianSpainOnyama Limba NEGOTIATION
Salvatore StockhamJapanIoni Bowcher QUALIFIED
Arvin AlbaresItalyOnyama Limba UNQUALIFIED
Mujtaba NickaRussiaIvan Magalhaes PROPOSAL
Mujtaba NickaRussiaAmy Elsner RENEWAL
Leja CaldareraIndiaElwin Sharvill UNQUALIFIED
Salvatore StockhamArgentinaAmy Elsner UNQUALIFIED
Mujtaba NickaUnited KingdomIoni Bowcher UNQUALIFIED
Antonio CaudyRussiaXuxue Feng UNQUALIFIED
Aditya KuskoUnited KingdomAmy Elsner NEGOTIATION
Kadeem FlosiItalyOnyama Limba RENEWAL
Aditya KuskoRussiaOnyama Limba NEW
Deepesh ChuiItalyXuxue Feng PROPOSAL
Chavez BriddickSpainAsiya Javayant NEW
Costa DilliardUnited KingdomXuxue Feng RENEWAL
Smith GlickSpainXuxue Feng NEW
Emily WhobreySpainStephen Shaw NEW
Stacey MacleadFranceElwin Sharvill PROPOSAL
Isabel BowleyArgentinaIvan Magalhaes QUALIFIED
Misaki RoysterItalyIvan Magalhaes UNQUALIFIED
Julie StensethAustraliaIoni Bowcher NEW
Leja CaldareraJapanIoni Bowcher PROPOSAL
Smith GlickIndiaAmy Elsner UNQUALIFIED
Smith GlickGermanyIvan Magalhaes NEGOTIATION
Jennifer AmigonCanadaIvan Magalhaes QUALIFIED
Ricardo GauchoFranceIoni Bowcher PROPOSAL
Greenwood BologniaCanadaStephen Shaw RENEWAL
Kadeem FlosiAustraliaBernardo Dominic NEGOTIATION
Emily WhobreySpainAnna Fali NEGOTIATION
Aruna FigeroaArgentinaXuxue Feng NEGOTIATION
Emily WhobreySpainAsiya Javayant PROPOSAL
Morrow RutaArgentinaBernardo Dominic PROPOSAL
Adams MorascaSpainIvan Magalhaes UNQUALIFIED
Mayumi KolmetzBrazilAmy Elsner RENEWAL
Maisha RulapaughAustraliaStephen Shaw RENEWAL
Faith GillianItalyBernardo Dominic QUALIFIED
Silvio SlusarskiItalyIvan Magalhaes PROPOSAL
Murillo MaletSpainStephen Shaw PROPOSAL
Mujtaba NickaUnited KingdomAmy Elsner NEGOTIATION
Johnson SergiRussiaBernardo Dominic UNQUALIFIED
Jefferson SchemmerBrazilElwin Sharvill PROPOSAL
Greenwood BologniaAustraliaStephen Shaw NEW
Morrow RutaCanadaXuxue Feng QUALIFIED
Nicolas IturbideFranceAsiya Javayant NEGOTIATION
Mayumi KolmetzRussiaStephen Shaw NEW
Jennifer AmigonRussiaXuxue Feng NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Octavia MaletBrazilOnyama Limba PROPOSAL
Kaitlin OstroskyJapanAsiya Javayant QUALIFIED
Kadeem FlosiAustraliaAmy Elsner UNQUALIFIED
Wickens NestleGermanyElwin Sharvill PROPOSAL
Nicolas IturbideAustraliaAnna Fali NEW
Julie StensethItalyAsiya Javayant UNQUALIFIED
Ashley DoeBrazilAsiya Javayant NEW
Francesco ShinkoUnited KingdomAmy Elsner RENEWAL
James ButtItalyAnna Fali NEGOTIATION
Johnson SergiRussiaAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams MorascaUnited Kingdom2026-04-08Chemel, James L Cpa QUALIFIED34Asiya Javayant
1001Wickens NestleGermany2026-04-08Dorl, James J Esq QUALIFIED15Anna Fali
1002Antonio CaudyItaly2026-04-13Buckley Miller Wright NEGOTIATION61Anna Fali
1003Costa DilliardJapan2026-04-15Chanay, Jeffrey A Esq RENEWAL65Anna Fali
1004Jennifer AmigonGermany2026-03-30Buckley Miller Wright PROPOSAL7Ioni Bowcher
1005Misaki RoysterCanada2026-04-15Buckley Miller Wright QUALIFIED58Amy Elsner
1006Ashley DoeFrance2026-04-19King, Christopher A Esq NEW45Elwin Sharvill
1007Kadeem FlosiFrance2026-03-26Chanay, Jeffrey A Esq UNQUALIFIED36Stephen Shaw
1008Misaki RoysterUnited Kingdom2026-03-28Truhlar And Truhlar Attys QUALIFIED6Xuxue Feng
1009Adams MorascaArgentina2026-04-18Commercial Press NEGOTIATION22Anna Fali
1010Jennifer AmigonIndia2026-04-01Morlong Associates RENEWAL38Xuxue Feng
1011Jefferson SchemmerCanada2026-04-15King, Christopher A Esq QUALIFIED45Elwin Sharvill
1012Octavia MaletRussia2026-04-13Feiner Bros UNQUALIFIED99Elwin Sharvill
1013James ButtBrazil2026-03-27Chapman, Ross E Esq QUALIFIED74Onyama Limba
1014Wickens NestleCanada2026-04-21Benton, John B Jr NEW0Elwin Sharvill
1015Mayumi KolmetzSpain2026-04-20Benton, John B Jr NEGOTIATION86Stephen Shaw
1016Jones VocelkaGermany2026-03-25Feiner Bros UNQUALIFIED10Ioni Bowcher
1017Murillo MaletJapan2026-04-10Rousseaux, Michael Esq NEGOTIATION43Amy Elsner
1018Smith GlickGermany2026-03-25Chemel, James L Cpa NEGOTIATION74Elwin Sharvill
1019Aditya KuskoIndia2026-03-24Dorl, James J Esq NEW67Amy Elsner
1020Jones VocelkaAustralia2026-04-07Feiner Bros UNQUALIFIED35Bernardo Dominic
1021Isabel BowleyIndia2026-04-07Rousseaux, Michael Esq PROPOSAL75Bernardo Dominic
1022Maisha RulapaughIndia2026-03-24Feiner Bros NEGOTIATION54Amy Elsner
1023Izzy GarufiItaly2026-04-07Dorl, James J Esq NEGOTIATION98Anna Fali
1024Adams MorascaAustralia2026-03-30King, Christopher A Esq QUALIFIED13Asiya Javayant
1025Alejandro PerinBrazil2026-04-18Feltz Printing Service QUALIFIED60Xuxue Feng
1026Jefferson SchemmerFrance2026-04-09Feiner Bros QUALIFIED85Anna Fali
1027Adams MorascaArgentina2026-04-17Feltz Printing Service QUALIFIED67Stephen Shaw
1028Wickens NestleItaly2026-03-24Buckley Miller Wright QUALIFIED1Onyama Limba
1029Greenwood BologniaSpain2026-04-01Printing Dimensions RENEWAL65Ivan Magalhaes
1030Munro FerenczItaly2026-04-06Chanay, Jeffrey A Esq NEW16Onyama Limba
1031Cody SaylorsJapan2026-04-17Rousseaux, Michael Esq RENEWAL25Bernardo Dominic
1032Ashley DoeRussia2026-04-06King, Christopher A Esq QUALIFIED38Ivan Magalhaes
1033Claire TollnerCanada2026-04-07Truhlar And Truhlar Attys NEW64Elwin Sharvill
1034Octavia MaletIndia2026-04-06Feiner Bros NEW13Bernardo Dominic
1035Alejandro PerinItaly2026-03-29Chapman, Ross E Esq PROPOSAL63Xuxue Feng
1036Isabel BowleyBrazil2026-04-09Feltz Printing Service NEW95Stephen Shaw
1037Smith GlickRussia2026-04-19Buckley Miller Wright RENEWAL0Onyama Limba
1038Aika InouyeSpain2026-04-02Benton, John B Jr RENEWAL97Bernardo Dominic
1039David DarakjyRussia2026-04-16Chapman, Ross E Esq RENEWAL53Xuxue Feng
1040Faith GillianSpain2026-04-07King, Christopher A Esq PROPOSAL68Xuxue Feng
1041Adams MorascaItaly2026-03-27Feiner Bros PROPOSAL54Xuxue Feng
1042Francesco ShinkoArgentina2026-04-22Chapman, Ross E Esq UNQUALIFIED44Elwin Sharvill
1043Arvin AlbaresFrance2026-04-02Morlong Associates NEW88Asiya Javayant
1044Sinclair WaycottSpain2026-04-21Chemel, James L Cpa PROPOSAL18Stephen Shaw
1045Francesco ShinkoBrazil2026-03-30Buckley Miller Wright UNQUALIFIED36Bernardo Dominic
1046Smith GlickUnited Kingdom2026-04-19King, Christopher A Esq NEW75Asiya Javayant
1047Greenwood BologniaIndia2026-03-31Buckley Miller Wright NEGOTIATION45Stephen Shaw
1048Misaki RoysterArgentina2026-03-24Printing Dimensions RENEWAL51Onyama Limba
1049James ButtArgentina2026-04-13Chanay, Jeffrey A Esq UNQUALIFIED12Anna Fali
Frozen Rows
NameCountryRepresentativeStatus
Aika InouyeJapanAnna Fali NEGOTIATION
Johnson SergiIndiaBernardo Dominic RENEWAL
Cody SaylorsRussiaOnyama Limba UNQUALIFIED
Isabel BowleyFranceIoni Bowcher NEGOTIATION
Rodrigues CampainJapanIoni Bowcher QUALIFIED
Claire TollnerCanadaIvan Magalhaes UNQUALIFIED
Aika InouyeFranceBernardo Dominic NEW
Murillo MaletIndiaAmy Elsner NEGOTIATION
Deepesh ChuiItalyXuxue Feng QUALIFIED
Juan WieserItalyIvan Magalhaes RENEWAL
Tony FollerIndiaBernardo Dominic RENEWAL
Jones VocelkaArgentinaIoni Bowcher RENEWAL
Kaitlin OstroskyCanadaOnyama Limba RENEWAL
Arvin AlbaresArgentinaXuxue Feng UNQUALIFIED
Darci PoquetteAustraliaBernardo Dominic NEGOTIATION
Kadeem FlosiArgentinaAsiya Javayant QUALIFIED
Maria MarrierSpainAsiya Javayant NEW
Arvin AlbaresCanadaBernardo Dominic QUALIFIED
Aika InouyeRussiaAsiya Javayant QUALIFIED
Mayumi KolmetzGermanyAnna Fali NEW
Murillo MaletIndiaAmy Elsner PROPOSAL
Aika InouyeBrazilOnyama Limba NEW
Nicolas IturbideArgentinaAsiya Javayant RENEWAL
Mayumi KolmetzSpainElwin Sharvill NEW
Faith GillianGermanyAnna Fali NEGOTIATION
Greenwood BologniaAustraliaIoni Bowcher NEGOTIATION
Deepesh ChuiRussiaIoni Bowcher UNQUALIFIED
Deepesh ChuiGermanyAsiya Javayant RENEWAL
Emily WhobreyRussiaAnna Fali QUALIFIED
Rodrigues CampainGermanyElwin Sharvill QUALIFIED
Faith GillianBrazilXuxue Feng NEGOTIATION
Maria MarrierJapanOnyama Limba QUALIFIED
Wickens NestleItalyAsiya Javayant PROPOSAL
Leja CaldareraItalyAmy Elsner NEGOTIATION
Jeanfrancois VenereFranceIvan Magalhaes QUALIFIED
Kaitlin OstroskyGermanyElwin Sharvill UNQUALIFIED
Darci PoquetteRussiaAmy Elsner RENEWAL
Faith GillianFranceIoni Bowcher PROPOSAL
Munro FerenczBrazilIoni Bowcher QUALIFIED
Kaitlin OstroskyCanadaAsiya Javayant PROPOSAL
Rodrigues CampainItalyIoni Bowcher RENEWAL
Claire TollnerArgentinaAmy Elsner RENEWAL
Maisha RulapaughItalyOnyama Limba NEGOTIATION
Isabel BowleyBrazilIoni Bowcher NEGOTIATION
Rodrigues CampainRussiaBernardo Dominic RENEWAL
Cody SaylorsSpainIvan Magalhaes PROPOSAL
Nicolas IturbideFranceElwin Sharvill NEW
Murillo MaletJapanIvan Magalhaes PROPOSAL
Ashley DoeAustraliaXuxue Feng PROPOSAL
Stacey MacleadCanadaIoni Bowcher PROPOSAL
Frozen Columns
Name
Julie Stenseth
Alejandro Perin
Leja Caldarera
Stacey Maclead
Jones Vocelka
Chavez Briddick
Costa Dilliard
Octavia Malet
Leja Caldarera
Leon Oldroyd
Greenwood Bolognia
Greenwood Bolognia
Silvio Slusarski
Tony Foller
Claire Tollner
Chavez Briddick
Deepesh Chui
Nicolas Iturbide
Rodrigues Campain
Aruna Figeroa
Wickens Nestle
Munro Ferencz
Clifford Rim
Ashley Doe
Izzy Garufi
Mujtaba Nicka
Faith Gillian
Mayumi Kolmetz
Claire Tollner
Jefferson Schemmer
James Butt
Salvatore Stockham
Wickens Nestle
Aruna Figeroa
Murillo Malet
Jones Vocelka
Emily Whobrey
Costa Dilliard
Jefferson Schemmer
Clifford Rim
Chavez Briddick
Emily Whobrey
Greenwood Bolognia
David Darakjy
Leon Oldroyd
Kadeem Flosi
Maisha Rulapaugh
Alejandro Perin
David Darakjy
Aditya Kusko
IdCountryDate
1000Japan2026-03-30
1001France2026-04-03
1002Spain2026-04-04
1003United Kingdom2026-04-04
1004Germany2026-04-04
1005India2026-04-07
1006France2026-04-04
1007Japan2026-04-14
1008Spain2026-03-25
1009United Kingdom2026-04-18
1010Argentina2026-03-30
1011India2026-04-16
1012Spain2026-03-29
1013Argentina2026-03-31
1014Brazil2026-04-08
1015India2026-03-30
1016Japan2026-03-29
1017Spain2026-04-17
1018France2026-03-28
1019Argentina2026-03-25
1020Australia2026-04-22
1021United Kingdom2026-03-27
1022United Kingdom2026-04-02
1023Canada2026-04-01
1024Italy2026-04-06
1025United Kingdom2026-04-21
1026France2026-04-07
1027Canada2026-04-04
1028Spain2026-04-07
1029Argentina2026-04-08
1030Brazil2026-04-04
1031Japan2026-04-22
1032Germany2026-04-02
1033Germany2026-04-03
1034Italy2026-04-08
1035United Kingdom2026-04-17
1036Italy2026-04-06
1037Australia2026-04-10
1038Germany2026-04-02
1039United Kingdom2026-04-18
1040Spain2026-04-20
1041India2026-04-13
1042France2026-04-18
1043Brazil2026-04-04
1044Canada2026-04-11
1045Argentina2026-03-29
1046Russia2026-04-02
1047Japan2026-03-26
1048United Kingdom2026-03-24
1049Russia2026-04-17

On-Demand Data

NameIdCountryDate
Greenwood Bolognia1000Australia2026-03-26
Aika Inouye1001Australia2026-04-10
Morrow Ruta1002France2026-04-11
Maisha Rulapaugh1003Australia2026-04-10
Rodrigues Campain1004Japan2026-04-03
Emily Whobrey1005Canada2026-04-09
Rodrigues Campain1006India2026-03-29
Jennifer Amigon1007Japan2026-04-20
Chavez Briddick1008Spain2026-04-03
Morrow Ruta1009Japan2026-04-17
Jeanfrancois Venere1010Spain2026-04-10
David Darakjy1011France2026-04-20
Aika Inouye1012United Kingdom2026-03-26
Greenwood Bolognia1013Russia2026-04-06
Chavez Briddick1014Australia2026-03-24
Cody Saylors1015Argentina2026-04-18
Misaki Royster1016Japan2026-04-13
Johnson Sergi1017India2026-03-29
Jefferson Schemmer1018Spain2026-04-04
Jones Vocelka1019United Kingdom2026-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinSpainAnna Fali QUALIFIED
Tony FollerGermanyXuxue Feng QUALIFIED
Isabel BowleyAustraliaAnna Fali PROPOSAL
Johnson SergiSpainElwin Sharvill PROPOSAL
Smith GlickSpainOnyama Limba RENEWAL
Faith GillianAustraliaIoni Bowcher NEGOTIATION
Mujtaba NickaBrazilAsiya Javayant RENEWAL
Leon OldroydSpainBernardo Dominic RENEWAL
Francesco ShinkoRussiaBernardo Dominic NEW
Deepesh ChuiUnited KingdomOnyama Limba UNQUALIFIED
David DarakjyIndiaOnyama Limba RENEWAL
Aditya KuskoAustraliaAsiya Javayant NEGOTIATION
Jeanfrancois VenereSpainBernardo Dominic NEW
Izzy GarufiRussiaAnna Fali QUALIFIED
Alejandro PerinArgentinaXuxue Feng QUALIFIED
Misaki RoysterSpainAnna Fali PROPOSAL
Kaitlin OstroskyGermanyStephen Shaw QUALIFIED
Jefferson SchemmerGermanyIvan Magalhaes NEW
Tony FollerRussiaAnna Fali PROPOSAL
Misaki RoysterUnited KingdomBernardo Dominic QUALIFIED
Kadeem FlosiRussiaAsiya Javayant RENEWAL
Greenwood BologniaUnited KingdomAsiya Javayant UNQUALIFIED
Maria MarrierIndiaOnyama Limba RENEWAL
Murillo MaletGermanyXuxue Feng PROPOSAL
James ButtRussiaAmy Elsner QUALIFIED
Aditya KuskoUnited KingdomElwin Sharvill NEW
James ButtBrazilIvan Magalhaes NEGOTIATION
Deepesh ChuiFranceBernardo Dominic RENEWAL
Jefferson SchemmerIndiaElwin Sharvill UNQUALIFIED
Jones VocelkaGermanyAmy Elsner UNQUALIFIED
Aruna FigeroaGermanyAsiya Javayant QUALIFIED
Izzy GarufiFranceAmy Elsner NEW
Claire TollnerIndiaAmy Elsner QUALIFIED
Octavia MaletAustraliaStephen Shaw QUALIFIED
Nicolas IturbideAustraliaXuxue Feng RENEWAL
Jefferson SchemmerBrazilXuxue Feng PROPOSAL
Mayumi KolmetzSpainAsiya Javayant PROPOSAL
Chavez BriddickSpainIvan Magalhaes QUALIFIED
Silvio SlusarskiAustraliaOnyama Limba QUALIFIED
Jefferson SchemmerRussiaAsiya Javayant 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>