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
Leon OldroydAustraliaOnyama Limba NEGOTIATION
Maisha RulapaughBrazilXuxue Feng QUALIFIED
Tony FollerUnited KingdomAnna Fali NEGOTIATION
Isabel BowleyBrazilBernardo Dominic NEGOTIATION
Rodrigues CampainBrazilStephen Shaw UNQUALIFIED
Aika InouyeBrazilOnyama Limba PROPOSAL
Isabel BowleyFranceIoni Bowcher UNQUALIFIED
Ashley DoeFranceOnyama Limba UNQUALIFIED
Leja CaldareraUnited KingdomElwin Sharvill QUALIFIED
Ivar PaprockiItalyXuxue Feng NEW
Darci PoquetteArgentinaElwin Sharvill RENEWAL
Rodrigues CampainIndiaAmy Elsner RENEWAL
Mujtaba NickaRussiaAnna Fali NEW
Morrow RutaFranceIvan Magalhaes NEGOTIATION
Emily WhobreyCanadaXuxue Feng PROPOSAL
Silvio SlusarskiFranceOnyama Limba NEGOTIATION
Costa DilliardIndiaOnyama Limba PROPOSAL
Cody SaylorsArgentinaOnyama Limba RENEWAL
Maisha RulapaughCanadaStephen Shaw NEW
Octavia MaletSpainElwin Sharvill RENEWAL
Francesco ShinkoRussiaAmy Elsner NEW
Aruna FigeroaRussiaIoni Bowcher NEW
Murillo MaletIndiaBernardo Dominic RENEWAL
Salvatore StockhamUnited KingdomStephen Shaw RENEWAL
Francesco ShinkoAustraliaBernardo Dominic PROPOSAL
Juan WieserCanadaIoni Bowcher RENEWAL
Claire TollnerJapanOnyama Limba NEGOTIATION
Arvin AlbaresArgentinaBernardo Dominic NEGOTIATION
Faith GillianGermanyBernardo Dominic UNQUALIFIED
Octavia MaletSpainStephen Shaw PROPOSAL
Isabel BowleyUnited KingdomXuxue Feng NEW
Alejandro PerinCanadaBernardo Dominic UNQUALIFIED
Aika InouyeArgentinaIoni Bowcher PROPOSAL
Smith GlickRussiaElwin Sharvill PROPOSAL
Kadeem FlosiGermanyAsiya Javayant PROPOSAL
Adams MorascaRussiaIoni Bowcher QUALIFIED
Rodrigues CampainItalyStephen Shaw QUALIFIED
Jefferson SchemmerIndiaXuxue Feng QUALIFIED
Nicolas IturbideBrazilAsiya Javayant NEGOTIATION
Isabel BowleyFranceElwin Sharvill RENEWAL
Isabel BowleyItalyIoni Bowcher QUALIFIED
Aruna FigeroaGermanyAnna Fali UNQUALIFIED
Aika InouyeCanadaStephen Shaw PROPOSAL
Wickens NestleArgentinaAsiya Javayant NEW
Alejandro PerinCanadaAsiya Javayant NEGOTIATION
Juan WieserAustraliaAmy Elsner NEW
Emily WhobreyAustraliaAsiya Javayant NEGOTIATION
Emily WhobreyFranceBernardo Dominic NEW
Misaki RoysterRussiaAsiya Javayant UNQUALIFIED
Chavez BriddickArgentinaXuxue Feng UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Smith GlickAustraliaAmy Elsner UNQUALIFIED
Claire TollnerCanadaAnna Fali UNQUALIFIED
Maisha RulapaughItalyAnna Fali RENEWAL
Nicolas IturbideSpainStephen Shaw RENEWAL
Mayumi KolmetzItalyAsiya Javayant NEGOTIATION
Cody SaylorsAustraliaOnyama Limba PROPOSAL
Mujtaba NickaItalyAnna Fali NEW
Mujtaba NickaGermanyElwin Sharvill PROPOSAL
Alejandro PerinBrazilBernardo Dominic RENEWAL
Greenwood BologniaItalyIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Johnson SergiJapan2026-04-13Printing Dimensions QUALIFIED96Anna Fali
1001Rodrigues CampainRussia2026-04-29Benton, John B Jr QUALIFIED34Ioni Bowcher
1002Tony FollerRussia2026-04-29Rangoni Of Florence QUALIFIED64Xuxue Feng
1003Adams MorascaIndia2026-04-15Printing Dimensions RENEWAL58Onyama Limba
1004Sinclair WaycottItaly2026-04-12Chanay, Jeffrey A Esq PROPOSAL91Ioni Bowcher
1005Octavia MaletArgentina2026-04-23Commercial Press QUALIFIED96Bernardo Dominic
1006Maisha RulapaughRussia2026-04-22Chapman, Ross E Esq QUALIFIED36Stephen Shaw
1007Clifford RimItaly2026-04-18Feltz Printing Service RENEWAL15Stephen Shaw
1008Chavez BriddickAustralia2026-04-27Buckley Miller Wright NEW44Anna Fali
1009Ivar PaprockiGermany2026-04-14Truhlar And Truhlar Attys UNQUALIFIED24Onyama Limba
1010Murillo MaletGermany2026-04-27Chanay, Jeffrey A Esq UNQUALIFIED22Asiya Javayant
1011Greenwood BologniaJapan2026-04-10Printing Dimensions RENEWAL71Anna Fali
1012Jones VocelkaFrance2026-04-30Dorl, James J Esq PROPOSAL87Ioni Bowcher
1013Smith GlickUnited Kingdom2026-04-05Feiner Bros NEGOTIATION66Amy Elsner
1014Deepesh ChuiSpain2026-04-02Printing Dimensions UNQUALIFIED3Bernardo Dominic
1015James ButtUnited Kingdom2026-04-05Feltz Printing Service QUALIFIED52Onyama Limba
1016Murillo MaletArgentina2026-04-23Truhlar And Truhlar Attys QUALIFIED13Asiya Javayant
1017Darci PoquetteCanada2026-04-30Morlong Associates NEGOTIATION96Xuxue Feng
1018Smith GlickIndia2026-04-04Chanay, Jeffrey A Esq QUALIFIED21Ioni Bowcher
1019Kadeem FlosiSpain2026-04-11Rangoni Of Florence NEW33Anna Fali
1020Izzy GarufiArgentina2026-04-02Rangoni Of Florence PROPOSAL22Ioni Bowcher
1021Claire TollnerBrazil2026-05-01Truhlar And Truhlar Attys PROPOSAL47Bernardo Dominic
1022Darci PoquetteItaly2026-04-23Morlong Associates RENEWAL51Elwin Sharvill
1023Murillo MaletCanada2026-04-02Dorl, James J Esq UNQUALIFIED59Elwin Sharvill
1024Adams MorascaCanada2026-05-01Dorl, James J Esq UNQUALIFIED17Anna Fali
1025Jefferson SchemmerGermany2026-04-21Buckley Miller Wright QUALIFIED14Ivan Magalhaes
1026Ashley DoeIndia2026-04-04Chapman, Ross E Esq PROPOSAL8Bernardo Dominic
1027Darci PoquetteJapan2026-04-04Benton, John B Jr QUALIFIED19Amy Elsner
1028Maria MarrierSpain2026-04-08Feiner Bros NEW19Stephen Shaw
1029Morrow RutaRussia2026-04-23Printing Dimensions RENEWAL43Ioni Bowcher
1030Adams MorascaItaly2026-04-16Chapman, Ross E Esq UNQUALIFIED77Asiya Javayant
1031Isabel BowleySpain2026-04-12Dorl, James J Esq NEW27Bernardo Dominic
1032Silvio SlusarskiGermany2026-04-21Buckley Miller Wright PROPOSAL98Amy Elsner
1033Wickens NestleArgentina2026-04-05Chemel, James L Cpa NEW78Elwin Sharvill
1034David DarakjyIndia2026-04-03Chapman, Ross E Esq NEW76Ivan Magalhaes
1035Aditya KuskoArgentina2026-04-15Feiner Bros NEGOTIATION53Anna Fali
1036Munro FerenczFrance2026-04-06Morlong Associates RENEWAL17Elwin Sharvill
1037Wickens NestleFrance2026-04-21Printing Dimensions RENEWAL52Ioni Bowcher
1038David DarakjySpain2026-04-20Buckley Miller Wright RENEWAL16Ioni Bowcher
1039Izzy GarufiFrance2026-04-07Chanay, Jeffrey A Esq PROPOSAL93Ivan Magalhaes
1040Stacey MacleadGermany2026-04-23Dorl, James J Esq UNQUALIFIED67Xuxue Feng
1041Octavia MaletArgentina2026-04-08Chemel, James L Cpa UNQUALIFIED90Elwin Sharvill
1042Ricardo GauchoJapan2026-04-30Commercial Press NEGOTIATION9Anna Fali
1043Mujtaba NickaItaly2026-04-04Chapman, Ross E Esq RENEWAL81Amy Elsner
1044Wickens NestleUnited Kingdom2026-04-25Rangoni Of Florence PROPOSAL26Xuxue Feng
1045Antonio CaudyBrazil2026-04-10Feltz Printing Service UNQUALIFIED70Elwin Sharvill
1046Johnson SergiJapan2026-04-18Rousseaux, Michael Esq PROPOSAL78Stephen Shaw
1047Ivar PaprockiSpain2026-04-23Rousseaux, Michael Esq PROPOSAL12Onyama Limba
1048Ricardo GauchoItaly2026-04-21Rangoni Of Florence NEGOTIATION30Elwin Sharvill
1049Costa DilliardBrazil2026-04-18Printing Dimensions UNQUALIFIED17Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Johnson SergiIndiaElwin Sharvill NEGOTIATION
Juan WieserCanadaAmy Elsner PROPOSAL
Juan WieserIndiaXuxue Feng NEW
Darci PoquetteAustraliaIvan Magalhaes UNQUALIFIED
Smith GlickGermanyOnyama Limba PROPOSAL
Stacey MacleadSpainXuxue Feng NEW
Sinclair WaycottIndiaElwin Sharvill QUALIFIED
Mayumi KolmetzAustraliaOnyama Limba QUALIFIED
Darci PoquetteArgentinaOnyama Limba QUALIFIED
Greenwood BologniaFranceXuxue Feng RENEWAL
Aditya KuskoAustraliaIoni Bowcher UNQUALIFIED
Clifford RimCanadaBernardo Dominic NEGOTIATION
Tony FollerIndiaElwin Sharvill RENEWAL
Izzy GarufiJapanElwin Sharvill NEGOTIATION
Octavia MaletCanadaAmy Elsner QUALIFIED
Leon OldroydCanadaAmy Elsner UNQUALIFIED
Adams MorascaRussiaXuxue Feng RENEWAL
Jeanfrancois VenereUnited KingdomAsiya Javayant PROPOSAL
Adams MorascaRussiaStephen Shaw UNQUALIFIED
Stacey MacleadSpainElwin Sharvill NEW
Faith GillianArgentinaAsiya Javayant QUALIFIED
Adams MorascaSpainXuxue Feng UNQUALIFIED
Tony FollerSpainAnna Fali QUALIFIED
Alejandro PerinRussiaOnyama Limba RENEWAL
Stacey MacleadBrazilIvan Magalhaes UNQUALIFIED
Smith GlickRussiaOnyama Limba NEW
Antonio CaudyArgentinaIoni Bowcher RENEWAL
Rodrigues CampainFranceIoni Bowcher QUALIFIED
Costa DilliardJapanIoni Bowcher PROPOSAL
Cody SaylorsUnited KingdomBernardo Dominic PROPOSAL
Octavia MaletUnited KingdomBernardo Dominic RENEWAL
Stacey MacleadFranceElwin Sharvill PROPOSAL
Claire TollnerSpainElwin Sharvill UNQUALIFIED
Darci PoquetteItalyStephen Shaw UNQUALIFIED
Kaitlin OstroskyAustraliaIoni Bowcher QUALIFIED
Maria MarrierCanadaStephen Shaw PROPOSAL
Faith GillianAustraliaAmy Elsner QUALIFIED
Costa DilliardItalyAnna Fali QUALIFIED
Misaki RoysterFranceBernardo Dominic NEGOTIATION
Aditya KuskoAustraliaIoni Bowcher QUALIFIED
Aruna FigeroaAustraliaAsiya Javayant NEGOTIATION
Isabel BowleyCanadaAsiya Javayant NEW
Faith GillianUnited KingdomAsiya Javayant NEW
Alejandro PerinUnited KingdomAnna Fali UNQUALIFIED
Adams MorascaUnited KingdomIvan Magalhaes NEW
Mayumi KolmetzFranceXuxue Feng QUALIFIED
Maria MarrierIndiaOnyama Limba QUALIFIED
Mayumi KolmetzGermanyElwin Sharvill NEGOTIATION
Arvin AlbaresFranceIvan Magalhaes UNQUALIFIED
James ButtRussiaStephen Shaw QUALIFIED
Frozen Columns
Name
Jones Vocelka
Aditya Kusko
Octavia Malet
Mayumi Kolmetz
Murillo Malet
Emily Whobrey
Julie Stenseth
Arvin Albares
Ashley Doe
Ashley Doe
Misaki Royster
Murillo Malet
Juan Wieser
Morrow Ruta
Julie Stenseth
Munro Ferencz
Leja Caldarera
Smith Glick
Misaki Royster
David Darakjy
Izzy Garufi
Smith Glick
David Darakjy
Ivar Paprocki
Alejandro Perin
Jones Vocelka
Stacey Maclead
Salvatore Stockham
Faith Gillian
Adams Morasca
Kadeem Flosi
Deepesh Chui
Arvin Albares
Isabel Bowley
Nicolas Iturbide
Murillo Malet
Tony Foller
Deepesh Chui
Octavia Malet
Cody Saylors
Deepesh Chui
Aditya Kusko
Costa Dilliard
Nicolas Iturbide
Arvin Albares
Cody Saylors
Mujtaba Nicka
Jeanfrancois Venere
Julie Stenseth
Cody Saylors
IdCountryDate
1000Japan2026-04-29
1001Germany2026-04-12
1002United Kingdom2026-04-15
1003United Kingdom2026-04-21
1004United Kingdom2026-04-06
1005India2026-04-12
1006Japan2026-04-14
1007Germany2026-05-01
1008Japan2026-04-28
1009Argentina2026-04-12
1010Japan2026-04-21
1011Canada2026-04-29
1012United Kingdom2026-04-18
1013Canada2026-04-17
1014Japan2026-04-17
1015Australia2026-04-24
1016Russia2026-04-21
1017Germany2026-04-20
1018Australia2026-04-09
1019Argentina2026-04-17
1020Italy2026-04-21
1021Brazil2026-04-29
1022Russia2026-04-29
1023Italy2026-04-25
1024Japan2026-04-25
1025Germany2026-04-19
1026Japan2026-04-20
1027Australia2026-04-20
1028Australia2026-04-04
1029India2026-04-19
1030Spain2026-04-26
1031France2026-04-28
1032Japan2026-04-11
1033Russia2026-04-04
1034Italy2026-04-03
1035Italy2026-04-08
1036India2026-04-28
1037Japan2026-04-08
1038Argentina2026-04-18
1039Australia2026-04-22
1040Japan2026-04-29
1041United Kingdom2026-04-20
1042Russia2026-04-29
1043Argentina2026-04-04
1044India2026-04-10
1045India2026-04-29
1046Australia2026-04-20
1047Germany2026-04-15
1048Brazil2026-04-17
1049France2026-04-05

On-Demand Data

NameIdCountryDate
Darci Poquette1000Italy2026-04-16
Maria Marrier1001Italy2026-04-19
Leja Caldarera1002United Kingdom2026-04-20
Francesco Shinko1003Canada2026-04-03
Salvatore Stockham1004United Kingdom2026-04-21
Aika Inouye1005Russia2026-04-02
Silvio Slusarski1006United Kingdom2026-04-24
Isabel Bowley1007Australia2026-04-04
Maisha Rulapaugh1008India2026-04-26
Francesco Shinko1009Australia2026-05-01
Jennifer Amigon1010France2026-04-25
Jeanfrancois Venere1011Australia2026-04-12
Salvatore Stockham1012Brazil2026-04-05
Munro Ferencz1013Japan2026-04-20
Maisha Rulapaugh1014Russia2026-04-28
Adams Morasca1015Australia2026-04-25
Deepesh Chui1016Russia2026-04-28
Salvatore Stockham1017Germany2026-05-01
Emily Whobrey1018Spain2026-04-12
Juan Wieser1019France2026-04-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mayumi KolmetzCanadaAnna Fali RENEWAL
Aruna FigeroaSpainBernardo Dominic PROPOSAL
Mayumi KolmetzCanadaBernardo Dominic PROPOSAL
Claire TollnerSpainIoni Bowcher QUALIFIED
Ashley DoeArgentinaElwin Sharvill QUALIFIED
Kadeem FlosiCanadaBernardo Dominic PROPOSAL
Nicolas IturbideRussiaBernardo Dominic PROPOSAL
Murillo MaletAustraliaIoni Bowcher PROPOSAL
Kadeem FlosiCanadaIvan Magalhaes PROPOSAL
Smith GlickBrazilAsiya Javayant NEGOTIATION
Salvatore StockhamBrazilElwin Sharvill UNQUALIFIED
Jones VocelkaJapanElwin Sharvill NEGOTIATION
Smith GlickGermanyAsiya Javayant NEW
Antonio CaudyUnited KingdomAmy Elsner RENEWAL
Cody SaylorsCanadaElwin Sharvill UNQUALIFIED
Clifford RimBrazilAsiya Javayant NEGOTIATION
Wickens NestleGermanyElwin Sharvill QUALIFIED
Darci PoquetteAustraliaXuxue Feng PROPOSAL
Sinclair WaycottFranceElwin Sharvill PROPOSAL
Deepesh ChuiFranceXuxue Feng NEGOTIATION
Darci PoquetteSpainOnyama Limba PROPOSAL
Wickens NestleAustraliaAsiya Javayant NEW
Jones VocelkaSpainAmy Elsner NEGOTIATION
Sinclair WaycottJapanElwin Sharvill QUALIFIED
Smith GlickGermanyStephen Shaw RENEWAL
Sinclair WaycottItalyBernardo Dominic UNQUALIFIED
Nicolas IturbideSpainElwin Sharvill PROPOSAL
Greenwood BologniaBrazilIoni Bowcher NEW
Arvin AlbaresBrazilAnna Fali UNQUALIFIED
Aika InouyeItalyAsiya Javayant PROPOSAL
Alejandro PerinCanadaOnyama Limba PROPOSAL
Isabel BowleyItalyAsiya Javayant UNQUALIFIED
Murillo MaletCanadaBernardo Dominic NEGOTIATION
Darci PoquetteArgentinaElwin Sharvill NEW
Maisha RulapaughAustraliaAsiya Javayant PROPOSAL
Cody SaylorsSpainAsiya Javayant RENEWAL
Adams MorascaIndiaIvan Magalhaes NEW
Johnson SergiGermanyAsiya Javayant PROPOSAL
David DarakjyBrazilAsiya Javayant QUALIFIED
Silvio SlusarskiFranceIvan Magalhaes NEGOTIATION

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