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
Arvin AlbaresUnited KingdomAsiya Javayant UNQUALIFIED
Deepesh ChuiUnited KingdomIvan Magalhaes NEW
Silvio SlusarskiJapanAsiya Javayant UNQUALIFIED
Jefferson SchemmerSpainBernardo Dominic PROPOSAL
Salvatore StockhamArgentinaAnna Fali NEGOTIATION
Juan WieserAustraliaXuxue Feng RENEWAL
Aditya KuskoRussiaAmy Elsner QUALIFIED
Clifford RimArgentinaAnna Fali QUALIFIED
James ButtIndiaIvan Magalhaes QUALIFIED
Leja CaldareraRussiaBernardo Dominic RENEWAL
Arvin AlbaresArgentinaElwin Sharvill NEGOTIATION
Isabel BowleyFranceAnna Fali QUALIFIED
Chavez BriddickSpainStephen Shaw PROPOSAL
Morrow RutaJapanBernardo Dominic QUALIFIED
Octavia MaletUnited KingdomAnna Fali PROPOSAL
Morrow RutaCanadaAsiya Javayant UNQUALIFIED
Octavia MaletGermanyIoni Bowcher UNQUALIFIED
Sinclair WaycottCanadaStephen Shaw QUALIFIED
Adams MorascaJapanStephen Shaw UNQUALIFIED
Murillo MaletArgentinaStephen Shaw PROPOSAL
Nicolas IturbideBrazilBernardo Dominic RENEWAL
Mayumi KolmetzRussiaIvan Magalhaes NEW
Jennifer AmigonFranceXuxue Feng RENEWAL
Kaitlin OstroskySpainIvan Magalhaes PROPOSAL
Claire TollnerFranceBernardo Dominic UNQUALIFIED
Stacey MacleadFranceIoni Bowcher NEW
Smith GlickAustraliaXuxue Feng UNQUALIFIED
Aika InouyeSpainIvan Magalhaes QUALIFIED
Adams MorascaAustraliaIoni Bowcher NEW
Munro FerenczIndiaXuxue Feng QUALIFIED
Stacey MacleadSpainAmy Elsner RENEWAL
Claire TollnerUnited KingdomAsiya Javayant RENEWAL
Darci PoquetteJapanIoni Bowcher NEGOTIATION
Leja CaldareraArgentinaOnyama Limba RENEWAL
Maisha RulapaughGermanyBernardo Dominic NEGOTIATION
Nicolas IturbideRussiaBernardo Dominic QUALIFIED
Rodrigues CampainUnited KingdomAmy Elsner RENEWAL
Kadeem FlosiItalyXuxue Feng UNQUALIFIED
Faith GillianItalyAsiya Javayant PROPOSAL
Munro FerenczBrazilXuxue Feng RENEWAL
Juan WieserCanadaStephen Shaw PROPOSAL
Octavia MaletSpainElwin Sharvill QUALIFIED
Mayumi KolmetzJapanIvan Magalhaes UNQUALIFIED
Costa DilliardSpainOnyama Limba RENEWAL
Arvin AlbaresItalyAmy Elsner QUALIFIED
Julie StensethRussiaOnyama Limba NEW
Alejandro PerinSpainIoni Bowcher QUALIFIED
Costa DilliardSpainBernardo Dominic UNQUALIFIED
Claire TollnerArgentinaIvan Magalhaes RENEWAL
Morrow RutaGermanyElwin Sharvill NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Leja CaldareraCanadaAnna Fali RENEWAL
Salvatore StockhamBrazilElwin Sharvill QUALIFIED
Julie StensethCanadaAsiya Javayant NEW
Maria MarrierBrazilAsiya Javayant RENEWAL
Leon OldroydItalyAsiya Javayant NEGOTIATION
Morrow RutaJapanOnyama Limba UNQUALIFIED
Jones VocelkaArgentinaIoni Bowcher UNQUALIFIED
Maisha RulapaughGermanyIvan Magalhaes PROPOSAL
Wickens NestleIndiaIvan Magalhaes PROPOSAL
Faith GillianRussiaAsiya Javayant QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan WieserBrazil2026-05-16Chapman, Ross E Esq NEGOTIATION51Elwin Sharvill
1001Mujtaba NickaItaly2026-05-17Chanay, Jeffrey A Esq NEW0Ioni Bowcher
1002Kaitlin OstroskyGermany2026-06-09Chapman, Ross E Esq NEGOTIATION81Amy Elsner
1003Nicolas IturbideArgentina2026-05-28Feiner Bros RENEWAL96Amy Elsner
1004Leja CaldareraCanada2026-06-09Feltz Printing Service RENEWAL61Ioni Bowcher
1005Faith GillianAustralia2026-05-19Buckley Miller Wright NEW97Stephen Shaw
1006Jennifer AmigonArgentina2026-05-28Chanay, Jeffrey A Esq NEW79Xuxue Feng
1007Chavez BriddickCanada2026-06-01Morlong Associates PROPOSAL62Ivan Magalhaes
1008Chavez BriddickJapan2026-06-09Truhlar And Truhlar Attys PROPOSAL63Onyama Limba
1009Mayumi KolmetzAustralia2026-05-18Buckley Miller Wright NEGOTIATION38Ivan Magalhaes
1010Antonio CaudyArgentina2026-05-14Commercial Press QUALIFIED67Asiya Javayant
1011Chavez BriddickJapan2026-05-27Feltz Printing Service NEW75Onyama Limba
1012Costa DilliardItaly2026-06-03Benton, John B Jr QUALIFIED25Elwin Sharvill
1013Jones VocelkaCanada2026-05-21Rousseaux, Michael Esq NEGOTIATION55Xuxue Feng
1014Adams MorascaRussia2026-05-27Buckley Miller Wright QUALIFIED80Xuxue Feng
1015Smith GlickJapan2026-05-15Dorl, James J Esq PROPOSAL90Ioni Bowcher
1016Aruna FigeroaArgentina2026-05-20Chemel, James L Cpa UNQUALIFIED92Bernardo Dominic
1017Adams MorascaArgentina2026-06-04Commercial Press RENEWAL83Onyama Limba
1018Mujtaba NickaUnited Kingdom2026-05-19Morlong Associates NEGOTIATION26Asiya Javayant
1019Stacey MacleadUnited Kingdom2026-06-04Chapman, Ross E Esq NEGOTIATION49Anna Fali
1020Greenwood BologniaItaly2026-05-12Benton, John B Jr RENEWAL96Ioni Bowcher
1021Antonio CaudyBrazil2026-06-07Feltz Printing Service NEGOTIATION14Asiya Javayant
1022Alejandro PerinAustralia2026-05-11Printing Dimensions NEGOTIATION20Anna Fali
1023Mujtaba NickaBrazil2026-05-23Benton, John B Jr UNQUALIFIED21Xuxue Feng
1024Tony FollerBrazil2026-06-09Commercial Press QUALIFIED83Stephen Shaw
1025Darci PoquetteArgentina2026-05-28Commercial Press NEGOTIATION4Anna Fali
1026Francesco ShinkoGermany2026-06-07Feltz Printing Service RENEWAL62Anna Fali
1027Izzy GarufiBrazil2026-05-20Buckley Miller Wright QUALIFIED73Ioni Bowcher
1028Izzy GarufiArgentina2026-05-16Chanay, Jeffrey A Esq UNQUALIFIED60Ivan Magalhaes
1029Darci PoquetteFrance2026-05-31Rousseaux, Michael Esq NEW35Bernardo Dominic
1030Rodrigues CampainCanada2026-05-28Truhlar And Truhlar Attys PROPOSAL19Anna Fali
1031Jefferson SchemmerGermany2026-06-03Chapman, Ross E Esq NEGOTIATION84Anna Fali
1032Kadeem FlosiRussia2026-05-23Dorl, James J Esq NEGOTIATION97Xuxue Feng
1033Aika InouyeItaly2026-06-07Commercial Press NEW3Bernardo Dominic
1034Nicolas IturbideArgentina2026-05-31Chanay, Jeffrey A Esq RENEWAL71Bernardo Dominic
1035Aditya KuskoUnited Kingdom2026-05-29Chemel, James L Cpa PROPOSAL87Onyama Limba
1036Jefferson SchemmerItaly2026-05-29Dorl, James J Esq QUALIFIED4Asiya Javayant
1037Aruna FigeroaJapan2026-06-03Benton, John B Jr NEGOTIATION70Amy Elsner
1038Stacey MacleadJapan2026-05-13Feltz Printing Service QUALIFIED38Amy Elsner
1039Jeanfrancois VenereRussia2026-06-05Feltz Printing Service QUALIFIED0Ivan Magalhaes
1040Sinclair WaycottRussia2026-05-17Rangoni Of Florence RENEWAL84Onyama Limba
1041Jefferson SchemmerRussia2026-05-30Feltz Printing Service QUALIFIED21Onyama Limba
1042Aika InouyeSpain2026-05-18Chapman, Ross E Esq UNQUALIFIED55Asiya Javayant
1043Izzy GarufiUnited Kingdom2026-05-28Chapman, Ross E Esq NEGOTIATION36Amy Elsner
1044Johnson SergiCanada2026-05-27Feiner Bros NEGOTIATION73Asiya Javayant
1045Ricardo GauchoItaly2026-05-22Buckley Miller Wright RENEWAL17Ivan Magalhaes
1046Alejandro PerinCanada2026-05-20Commercial Press RENEWAL93Asiya Javayant
1047Jeanfrancois VenereRussia2026-05-22Feltz Printing Service NEGOTIATION12Ivan Magalhaes
1048Jefferson SchemmerAustralia2026-05-21Chemel, James L Cpa NEGOTIATION70Amy Elsner
1049Ashley DoeRussia2026-06-04Chapman, Ross E Esq PROPOSAL41Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Claire TollnerRussiaAmy Elsner NEW
Maria MarrierIndiaAmy Elsner UNQUALIFIED
Smith GlickArgentinaStephen Shaw UNQUALIFIED
Aditya KuskoIndiaIoni Bowcher NEW
Antonio CaudyRussiaBernardo Dominic UNQUALIFIED
Kaitlin OstroskySpainIoni Bowcher UNQUALIFIED
Sinclair WaycottArgentinaOnyama Limba UNQUALIFIED
Sinclair WaycottAustraliaAnna Fali NEW
Isabel BowleyGermanyAmy Elsner NEGOTIATION
Jennifer AmigonItalyElwin Sharvill NEGOTIATION
Alejandro PerinFranceAmy Elsner UNQUALIFIED
Misaki RoysterSpainStephen Shaw NEW
Octavia MaletBrazilAmy Elsner NEGOTIATION
Emily WhobreyFranceAmy Elsner NEW
Jefferson SchemmerUnited KingdomBernardo Dominic UNQUALIFIED
Johnson SergiItalyOnyama Limba NEGOTIATION
Darci PoquetteRussiaAsiya Javayant NEGOTIATION
Izzy GarufiSpainAsiya Javayant NEGOTIATION
Francesco ShinkoGermanyXuxue Feng UNQUALIFIED
Smith GlickBrazilOnyama Limba PROPOSAL
Clifford RimRussiaAmy Elsner UNQUALIFIED
Alejandro PerinAustraliaAmy Elsner UNQUALIFIED
Mujtaba NickaIndiaAsiya Javayant RENEWAL
Stacey MacleadFranceElwin Sharvill RENEWAL
Ricardo GauchoFranceIvan Magalhaes UNQUALIFIED
Emily WhobreySpainAsiya Javayant RENEWAL
Misaki RoysterItalyIoni Bowcher PROPOSAL
Chavez BriddickGermanyOnyama Limba UNQUALIFIED
David DarakjyBrazilXuxue Feng PROPOSAL
Antonio CaudyFranceBernardo Dominic RENEWAL
Darci PoquetteArgentinaAsiya Javayant RENEWAL
Claire TollnerFranceAmy Elsner UNQUALIFIED
Emily WhobreyFranceBernardo Dominic NEW
Jones VocelkaItalyBernardo Dominic UNQUALIFIED
Antonio CaudyCanadaAsiya Javayant QUALIFIED
Octavia MaletUnited KingdomAmy Elsner QUALIFIED
Rodrigues CampainGermanyBernardo Dominic NEGOTIATION
David DarakjyIndiaStephen Shaw NEGOTIATION
Smith GlickGermanyIoni Bowcher NEGOTIATION
Octavia MaletIndiaElwin Sharvill QUALIFIED
Cody SaylorsUnited KingdomXuxue Feng RENEWAL
James ButtItalyAsiya Javayant UNQUALIFIED
Smith GlickGermanyOnyama Limba RENEWAL
David DarakjyAustraliaXuxue Feng NEW
Jeanfrancois VenereItalyAsiya Javayant PROPOSAL
Salvatore StockhamUnited KingdomAnna Fali QUALIFIED
Smith GlickGermanyXuxue Feng RENEWAL
Cody SaylorsCanadaXuxue Feng RENEWAL
Adams MorascaGermanyOnyama Limba PROPOSAL
Faith GillianItalyStephen Shaw NEW
Frozen Columns
Name
Maisha Rulapaugh
Adams Morasca
Stacey Maclead
Deepesh Chui
Aruna Figeroa
Stacey Maclead
Costa Dilliard
Salvatore Stockham
Maria Marrier
Claire Tollner
Kaitlin Ostrosky
Faith Gillian
Isabel Bowley
Stacey Maclead
Jeanfrancois Venere
Morrow Ruta
Silvio Slusarski
Salvatore Stockham
Stacey Maclead
Misaki Royster
Mujtaba Nicka
Kaitlin Ostrosky
Nicolas Iturbide
Morrow Ruta
Jones Vocelka
Leja Caldarera
Isabel Bowley
Tony Foller
Aika Inouye
Alejandro Perin
Aika Inouye
Salvatore Stockham
Johnson Sergi
Stacey Maclead
Aditya Kusko
Izzy Garufi
Francesco Shinko
Salvatore Stockham
Alejandro Perin
Smith Glick
Octavia Malet
James Butt
Juan Wieser
Nicolas Iturbide
Isabel Bowley
Ricardo Gaucho
Ricardo Gaucho
Greenwood Bolognia
Aruna Figeroa
Aditya Kusko
IdCountryDate
1000Russia2026-05-15
1001Canada2026-06-01
1002Argentina2026-05-20
1003Germany2026-05-24
1004Germany2026-05-17
1005Italy2026-06-01
1006Italy2026-05-14
1007France2026-06-09
1008France2026-06-02
1009Brazil2026-05-23
1010Australia2026-05-31
1011India2026-05-27
1012France2026-05-25
1013Germany2026-05-24
1014France2026-05-14
1015United Kingdom2026-06-04
1016Italy2026-05-29
1017Germany2026-05-18
1018India2026-06-01
1019Spain2026-05-28
1020Canada2026-05-20
1021Italy2026-05-23
1022Italy2026-06-04
1023Russia2026-06-07
1024Italy2026-05-22
1025Australia2026-05-12
1026Australia2026-05-28
1027Canada2026-05-15
1028Japan2026-05-24
1029Germany2026-05-12
1030Brazil2026-05-17
1031Brazil2026-05-28
1032France2026-05-13
1033India2026-05-24
1034Argentina2026-05-26
1035Italy2026-05-25
1036Australia2026-05-17
1037India2026-06-04
1038Italy2026-05-14
1039India2026-05-22
1040France2026-05-15
1041Russia2026-05-21
1042Italy2026-05-22
1043Japan2026-05-26
1044France2026-05-31
1045Spain2026-05-13
1046France2026-05-15
1047France2026-05-30
1048Australia2026-05-18
1049Argentina2026-06-09

On-Demand Data

NameIdCountryDate
Leja Caldarera1000Brazil2026-05-22
Darci Poquette1001Australia2026-05-30
Rodrigues Campain1002Brazil2026-05-14
Smith Glick1003Japan2026-05-22
Jeanfrancois Venere1004Spain2026-06-05
Chavez Briddick1005France2026-05-16
Costa Dilliard1006United Kingdom2026-06-07
Maria Marrier1007Brazil2026-05-13
Salvatore Stockham1008United Kingdom2026-05-26
Izzy Garufi1009India2026-05-20
Aika Inouye1010France2026-05-26
Arvin Albares1011Brazil2026-05-31
Jones Vocelka1012India2026-05-18
Izzy Garufi1013Russia2026-06-06
Stacey Maclead1014Russia2026-05-15
Alejandro Perin1015Brazil2026-05-13
Nicolas Iturbide1016Italy2026-06-06
Antonio Caudy1017Japan2026-05-31
Jones Vocelka1018Spain2026-06-09
Deepesh Chui1019Australia2026-06-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily WhobreyUnited KingdomBernardo Dominic NEW
Misaki RoysterAustraliaIoni Bowcher NEW
Sinclair WaycottGermanyStephen Shaw NEGOTIATION
Chavez BriddickItalyAmy Elsner RENEWAL
Salvatore StockhamGermanyBernardo Dominic NEGOTIATION
Costa DilliardAustraliaOnyama Limba PROPOSAL
Kaitlin OstroskyFranceStephen Shaw PROPOSAL
Isabel BowleyUnited KingdomElwin Sharvill RENEWAL
Chavez BriddickJapanBernardo Dominic QUALIFIED
Salvatore StockhamFranceStephen Shaw QUALIFIED
Jones VocelkaFranceStephen Shaw PROPOSAL
Kaitlin OstroskySpainIoni Bowcher PROPOSAL
Wickens NestleUnited KingdomStephen Shaw NEGOTIATION
Sinclair WaycottRussiaElwin Sharvill RENEWAL
James ButtFranceOnyama Limba UNQUALIFIED
Jennifer AmigonUnited KingdomAsiya Javayant RENEWAL
Sinclair WaycottCanadaOnyama Limba PROPOSAL
Emily WhobreyIndiaIoni Bowcher NEW
Kaitlin OstroskyBrazilStephen Shaw RENEWAL
Morrow RutaSpainAnna Fali NEW
Salvatore StockhamUnited KingdomAnna Fali UNQUALIFIED
Ashley DoeCanadaOnyama Limba RENEWAL
Ivar PaprockiFranceStephen Shaw UNQUALIFIED
Wickens NestleFranceIoni Bowcher PROPOSAL
Stacey MacleadUnited KingdomAmy Elsner UNQUALIFIED
Sinclair WaycottJapanAnna Fali PROPOSAL
Octavia MaletIndiaBernardo Dominic NEW
Clifford RimIndiaAmy Elsner NEGOTIATION
Chavez BriddickUnited KingdomXuxue Feng NEW
Nicolas IturbideArgentinaElwin Sharvill RENEWAL
Johnson SergiJapanIvan Magalhaes NEW
Ashley DoeSpainElwin Sharvill NEGOTIATION
Murillo MaletGermanyElwin Sharvill NEGOTIATION
Costa DilliardGermanyOnyama Limba NEW
Stacey MacleadJapanIvan Magalhaes UNQUALIFIED
Alejandro PerinArgentinaBernardo Dominic QUALIFIED
Ashley DoeJapanAnna Fali NEW
Julie StensethUnited KingdomOnyama Limba PROPOSAL
Stacey MacleadAustraliaBernardo Dominic NEGOTIATION
Greenwood BologniaRussiaOnyama Limba NEW

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