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
Murillo MaletCanadaElwin Sharvill QUALIFIED
Murillo MaletUnited KingdomBernardo Dominic UNQUALIFIED
Rodrigues CampainJapanStephen Shaw UNQUALIFIED
Aika InouyeRussiaStephen Shaw UNQUALIFIED
Stacey MacleadCanadaBernardo Dominic NEW
Sinclair WaycottAustraliaElwin Sharvill PROPOSAL
Jefferson SchemmerRussiaStephen Shaw QUALIFIED
Maria MarrierUnited KingdomStephen Shaw RENEWAL
Kaitlin OstroskyCanadaStephen Shaw UNQUALIFIED
Costa DilliardCanadaStephen Shaw NEW
Greenwood BologniaSpainXuxue Feng UNQUALIFIED
Ricardo GauchoSpainElwin Sharvill QUALIFIED
Kadeem FlosiSpainXuxue Feng UNQUALIFIED
Claire TollnerBrazilXuxue Feng UNQUALIFIED
Antonio CaudyBrazilIvan Magalhaes NEW
Mayumi KolmetzRussiaOnyama Limba NEW
Izzy GarufiSpainStephen Shaw QUALIFIED
Salvatore StockhamUnited KingdomAmy Elsner RENEWAL
Leon OldroydItalyOnyama Limba PROPOSAL
Maisha RulapaughUnited KingdomAsiya Javayant RENEWAL
Mujtaba NickaJapanAmy Elsner QUALIFIED
Mayumi KolmetzBrazilAmy Elsner NEGOTIATION
Jeanfrancois VenereSpainBernardo Dominic NEGOTIATION
Claire TollnerSpainOnyama Limba RENEWAL
Clifford RimItalyOnyama Limba UNQUALIFIED
Deepesh ChuiCanadaElwin Sharvill UNQUALIFIED
Chavez BriddickArgentinaBernardo Dominic RENEWAL
Antonio CaudyUnited KingdomElwin Sharvill PROPOSAL
Johnson SergiJapanAmy Elsner RENEWAL
Deepesh ChuiAustraliaIvan Magalhaes UNQUALIFIED
Jefferson SchemmerAustraliaAmy Elsner NEGOTIATION
Aika InouyeUnited KingdomStephen Shaw QUALIFIED
Salvatore StockhamSpainAsiya Javayant NEGOTIATION
Costa DilliardBrazilXuxue Feng UNQUALIFIED
Leon OldroydGermanyXuxue Feng NEW
Juan WieserRussiaIvan Magalhaes RENEWAL
Kadeem FlosiRussiaBernardo Dominic NEW
Costa DilliardIndiaStephen Shaw NEW
Cody SaylorsArgentinaAnna Fali NEW
Aika InouyeRussiaIoni Bowcher RENEWAL
Julie StensethItalyElwin Sharvill UNQUALIFIED
Aika InouyeGermanyOnyama Limba NEGOTIATION
Murillo MaletJapanElwin Sharvill PROPOSAL
Clifford RimBrazilStephen Shaw NEGOTIATION
Chavez BriddickItalyIoni Bowcher NEGOTIATION
Julie StensethRussiaIoni Bowcher PROPOSAL
Wickens NestleItalyAsiya Javayant QUALIFIED
Jennifer AmigonAustraliaStephen Shaw PROPOSAL
Murillo MaletUnited KingdomAnna Fali QUALIFIED
Stacey MacleadIndiaIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Emily WhobreyItalyIoni Bowcher PROPOSAL
Silvio SlusarskiCanadaAsiya Javayant QUALIFIED
David DarakjyRussiaElwin Sharvill PROPOSAL
Faith GillianBrazilXuxue Feng NEGOTIATION
Costa DilliardFranceAnna Fali UNQUALIFIED
Clifford RimJapanIvan Magalhaes QUALIFIED
Jeanfrancois VenereSpainStephen Shaw NEW
Smith GlickRussiaElwin Sharvill RENEWAL
Cody SaylorsUnited KingdomAsiya Javayant QUALIFIED
Smith GlickGermanyAsiya Javayant NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000David DarakjyFrance2026-03-31Rangoni Of Florence NEW71Ioni Bowcher
1001Alejandro PerinCanada2026-04-26Chapman, Ross E Esq PROPOSAL20Onyama Limba
1002Nicolas IturbideSpain2026-04-26Printing Dimensions RENEWAL16Elwin Sharvill
1003Johnson SergiArgentina2026-04-05Chemel, James L Cpa RENEWAL97Anna Fali
1004Stacey MacleadSpain2026-04-02Dorl, James J Esq RENEWAL26Bernardo Dominic
1005Jennifer AmigonJapan2026-03-31Feltz Printing Service NEGOTIATION36Bernardo Dominic
1006Juan WieserCanada2026-04-08Morlong Associates NEGOTIATION13Ivan Magalhaes
1007James ButtArgentina2026-04-16Commercial Press NEGOTIATION36Ivan Magalhaes
1008Juan WieserFrance2026-03-31Chapman, Ross E Esq NEW37Xuxue Feng
1009Ivar PaprockiArgentina2026-04-26Chanay, Jeffrey A Esq PROPOSAL25Bernardo Dominic
1010Antonio CaudyCanada2026-04-24Rousseaux, Michael Esq RENEWAL85Onyama Limba
1011Costa DilliardBrazil2026-04-11Feltz Printing Service NEW74Asiya Javayant
1012Rodrigues CampainSpain2026-04-19Commercial Press PROPOSAL64Stephen Shaw
1013Johnson SergiRussia2026-04-23Rangoni Of Florence PROPOSAL63Bernardo Dominic
1014Juan WieserFrance2026-04-05Morlong Associates NEW87Elwin Sharvill
1015Misaki RoysterJapan2026-04-17Truhlar And Truhlar Attys QUALIFIED53Elwin Sharvill
1016Kaitlin OstroskyBrazil2026-04-11Truhlar And Truhlar Attys RENEWAL32Bernardo Dominic
1017Smith GlickSpain2026-04-15Commercial Press PROPOSAL78Ivan Magalhaes
1018Izzy GarufiBrazil2026-04-12Chanay, Jeffrey A Esq QUALIFIED70Ioni Bowcher
1019Clifford RimAustralia2026-04-25Morlong Associates RENEWAL96Onyama Limba
1020Costa DilliardIndia2026-04-05King, Christopher A Esq UNQUALIFIED32Asiya Javayant
1021Chavez BriddickCanada2026-03-28Chanay, Jeffrey A Esq UNQUALIFIED78Anna Fali
1022Jennifer AmigonCanada2026-04-24Truhlar And Truhlar Attys UNQUALIFIED99Amy Elsner
1023Tony FollerUnited Kingdom2026-04-10Dorl, James J Esq NEGOTIATION37Ivan Magalhaes
1024Alejandro PerinCanada2026-04-11Buckley Miller Wright UNQUALIFIED42Anna Fali
1025Munro FerenczJapan2026-04-05Printing Dimensions UNQUALIFIED61Anna Fali
1026Octavia MaletRussia2026-04-07Commercial Press NEW15Elwin Sharvill
1027Julie StensethArgentina2026-04-22Rangoni Of Florence PROPOSAL14Amy Elsner
1028Emily WhobreyUnited Kingdom2026-04-23Chemel, James L Cpa PROPOSAL30Stephen Shaw
1029Salvatore StockhamBrazil2026-04-05Truhlar And Truhlar Attys NEW98Ivan Magalhaes
1030Nicolas IturbideRussia2026-04-04Commercial Press QUALIFIED92Anna Fali
1031Nicolas IturbideIndia2026-04-20Morlong Associates UNQUALIFIED11Onyama Limba
1032Deepesh ChuiGermany2026-04-17Feiner Bros QUALIFIED34Xuxue Feng
1033Maisha RulapaughJapan2026-04-17Commercial Press NEGOTIATION50Stephen Shaw
1034Adams MorascaJapan2026-03-28Buckley Miller Wright PROPOSAL11Stephen Shaw
1035Maria MarrierIndia2026-04-22Dorl, James J Esq NEW9Stephen Shaw
1036Stacey MacleadJapan2026-04-05Truhlar And Truhlar Attys PROPOSAL24Xuxue Feng
1037Munro FerenczAustralia2026-04-12Feiner Bros UNQUALIFIED73Ivan Magalhaes
1038Antonio CaudyBrazil2026-04-10Dorl, James J Esq NEGOTIATION84Anna Fali
1039Sinclair WaycottRussia2026-04-11Dorl, James J Esq UNQUALIFIED97Ioni Bowcher
1040Silvio SlusarskiArgentina2026-04-17Feiner Bros UNQUALIFIED88Elwin Sharvill
1041Leon OldroydArgentina2026-04-07Feiner Bros NEW67Asiya Javayant
1042Tony FollerAustralia2026-04-23Truhlar And Truhlar Attys NEW12Ivan Magalhaes
1043Sinclair WaycottIndia2026-03-30Benton, John B Jr PROPOSAL21Stephen Shaw
1044Nicolas IturbideItaly2026-04-20Dorl, James J Esq RENEWAL13Asiya Javayant
1045Jefferson SchemmerSpain2026-04-09Feltz Printing Service PROPOSAL53Asiya Javayant
1046Adams MorascaRussia2026-03-31Rangoni Of Florence UNQUALIFIED39Stephen Shaw
1047James ButtBrazil2026-04-14Dorl, James J Esq QUALIFIED32Ivan Magalhaes
1048Munro FerenczCanada2026-04-24Feltz Printing Service NEGOTIATION30Amy Elsner
1049Claire TollnerItaly2026-04-05Buckley Miller Wright RENEWAL46Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Cody SaylorsBrazilIoni Bowcher NEW
Munro FerenczFranceAsiya Javayant RENEWAL
Morrow RutaCanadaBernardo Dominic RENEWAL
Emily WhobreyJapanIoni Bowcher QUALIFIED
Kadeem FlosiGermanyElwin Sharvill PROPOSAL
Maria MarrierCanadaAmy Elsner NEW
Kaitlin OstroskyGermanyAmy Elsner PROPOSAL
Morrow RutaJapanAmy Elsner QUALIFIED
Darci PoquetteIndiaStephen Shaw NEGOTIATION
Maisha RulapaughRussiaAsiya Javayant PROPOSAL
Nicolas IturbideItalyStephen Shaw QUALIFIED
Cody SaylorsIndiaXuxue Feng PROPOSAL
Izzy GarufiBrazilAsiya Javayant RENEWAL
James ButtSpainAnna Fali PROPOSAL
Chavez BriddickItalyStephen Shaw RENEWAL
Julie StensethItalyAmy Elsner RENEWAL
Jennifer AmigonIndiaAnna Fali RENEWAL
Leja CaldareraRussiaIvan Magalhaes RENEWAL
Alejandro PerinSpainXuxue Feng QUALIFIED
Arvin AlbaresJapanBernardo Dominic NEGOTIATION
Aruna FigeroaJapanXuxue Feng QUALIFIED
Antonio CaudyRussiaBernardo Dominic RENEWAL
Smith GlickUnited KingdomAnna Fali UNQUALIFIED
Mujtaba NickaUnited KingdomIvan Magalhaes QUALIFIED
Munro FerenczAustraliaStephen Shaw UNQUALIFIED
Salvatore StockhamItalyStephen Shaw PROPOSAL
Jones VocelkaSpainElwin Sharvill UNQUALIFIED
Arvin AlbaresIndiaIoni Bowcher NEGOTIATION
Leja CaldareraSpainIoni Bowcher PROPOSAL
Wickens NestleItalyIvan Magalhaes NEW
Maria MarrierIndiaBernardo Dominic RENEWAL
Stacey MacleadAustraliaIoni Bowcher NEGOTIATION
Francesco ShinkoIndiaIvan Magalhaes QUALIFIED
Emily WhobreyBrazilOnyama Limba NEGOTIATION
Julie StensethIndiaBernardo Dominic NEW
Mujtaba NickaAustraliaAnna Fali PROPOSAL
Maria MarrierRussiaOnyama Limba PROPOSAL
Claire TollnerRussiaAmy Elsner NEW
Chavez BriddickGermanyAnna Fali RENEWAL
Silvio SlusarskiBrazilXuxue Feng NEW
Jones VocelkaArgentinaIoni Bowcher QUALIFIED
Leon OldroydItalyAnna Fali NEW
Wickens NestleIndiaStephen Shaw NEGOTIATION
Munro FerenczRussiaBernardo Dominic RENEWAL
Mujtaba NickaBrazilIvan Magalhaes RENEWAL
Johnson SergiJapanIvan Magalhaes PROPOSAL
Munro FerenczCanadaElwin Sharvill PROPOSAL
Leja CaldareraJapanOnyama Limba UNQUALIFIED
Emily WhobreyAustraliaIvan Magalhaes NEW
Nicolas IturbideBrazilOnyama Limba UNQUALIFIED
Frozen Columns
Name
Tony Foller
Jennifer Amigon
Julie Stenseth
Mujtaba Nicka
Mayumi Kolmetz
Wickens Nestle
Antonio Caudy
Emily Whobrey
Jones Vocelka
Ricardo Gaucho
Kaitlin Ostrosky
Faith Gillian
Mujtaba Nicka
Ashley Doe
Salvatore Stockham
Wickens Nestle
Octavia Malet
Kaitlin Ostrosky
Costa Dilliard
Ivar Paprocki
Wickens Nestle
Sinclair Waycott
Maria Marrier
Izzy Garufi
Munro Ferencz
Murillo Malet
Leja Caldarera
Arvin Albares
Juan Wieser
Claire Tollner
Aika Inouye
Julie Stenseth
Francesco Shinko
Chavez Briddick
Salvatore Stockham
Cody Saylors
Munro Ferencz
Smith Glick
Adams Morasca
Leja Caldarera
Munro Ferencz
Rodrigues Campain
Kadeem Flosi
Jennifer Amigon
Chavez Briddick
Sinclair Waycott
Isabel Bowley
Mujtaba Nicka
Leja Caldarera
Juan Wieser
IdCountryDate
1000India2026-04-22
1001Germany2026-04-13
1002Japan2026-04-24
1003Canada2026-04-14
1004Spain2026-04-13
1005Italy2026-04-14
1006India2026-04-12
1007Brazil2026-03-31
1008Spain2026-04-21
1009Australia2026-03-28
1010Japan2026-04-26
1011Russia2026-04-17
1012Brazil2026-04-14
1013Brazil2026-04-06
1014Canada2026-04-12
1015Brazil2026-04-11
1016Brazil2026-04-26
1017Brazil2026-04-25
1018United Kingdom2026-04-16
1019India2026-04-11
1020Australia2026-04-04
1021Argentina2026-04-12
1022Brazil2026-04-25
1023United Kingdom2026-04-23
1024Argentina2026-03-29
1025Canada2026-04-10
1026Russia2026-04-11
1027Spain2026-04-20
1028Canada2026-03-29
1029Japan2026-04-18
1030Canada2026-04-16
1031Italy2026-03-31
1032United Kingdom2026-04-14
1033Russia2026-04-25
1034United Kingdom2026-04-06
1035Canada2026-04-13
1036Germany2026-04-22
1037Brazil2026-04-12
1038Spain2026-04-09
1039Argentina2026-04-20
1040India2026-04-21
1041Brazil2026-03-28
1042Spain2026-04-01
1043France2026-04-07
1044Brazil2026-04-19
1045Brazil2026-04-17
1046United Kingdom2026-04-18
1047Germany2026-04-01
1048Australia2026-03-29
1049Australia2026-04-15

On-Demand Data

NameIdCountryDate
Cody Saylors1000India2026-04-08
Wickens Nestle1001Spain2026-04-18
Leon Oldroyd1002Brazil2026-04-01
Juan Wieser1003Spain2026-04-12
Clifford Rim1004Brazil2026-04-02
Leja Caldarera1005United Kingdom2026-04-25
Cody Saylors1006Russia2026-04-03
Nicolas Iturbide1007Russia2026-04-25
Sinclair Waycott1008France2026-04-25
Silvio Slusarski1009Russia2026-04-03
Francesco Shinko1010Japan2026-04-08
Maisha Rulapaugh1011Canada2026-04-24
Salvatore Stockham1012Brazil2026-03-29
Wickens Nestle1013Spain2026-03-31
Faith Gillian1014Italy2026-04-06
Antonio Caudy1015United Kingdom2026-03-30
Nicolas Iturbide1016United Kingdom2026-04-13
Adams Morasca1017Brazil2026-04-19
Clifford Rim1018India2026-04-01
Greenwood Bolognia1019Argentina2026-04-10
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh ChuiItalyBernardo Dominic RENEWAL
Octavia MaletCanadaIvan Magalhaes PROPOSAL
Maria MarrierArgentinaXuxue Feng PROPOSAL
Nicolas IturbideArgentinaStephen Shaw UNQUALIFIED
Wickens NestleJapanXuxue Feng PROPOSAL
Arvin AlbaresAustraliaAsiya Javayant PROPOSAL
Adams MorascaUnited KingdomElwin Sharvill RENEWAL
Johnson SergiAustraliaAnna Fali PROPOSAL
Adams MorascaFranceAnna Fali NEGOTIATION
Ashley DoeItalyStephen Shaw UNQUALIFIED
Kadeem FlosiCanadaAmy Elsner NEGOTIATION
Arvin AlbaresSpainAmy Elsner QUALIFIED
Clifford RimGermanyOnyama Limba UNQUALIFIED
Octavia MaletBrazilStephen Shaw QUALIFIED
Tony FollerCanadaStephen Shaw QUALIFIED
Deepesh ChuiUnited KingdomXuxue Feng NEW
Stacey MacleadArgentinaAsiya Javayant UNQUALIFIED
Adams MorascaIndiaElwin Sharvill PROPOSAL
Cody SaylorsFranceAsiya Javayant RENEWAL
Greenwood BologniaFranceAnna Fali NEGOTIATION
Salvatore StockhamRussiaAmy Elsner RENEWAL
Greenwood BologniaUnited KingdomAsiya Javayant RENEWAL
Jeanfrancois VenereUnited KingdomAnna Fali UNQUALIFIED
Isabel BowleyFranceXuxue Feng RENEWAL
Octavia MaletRussiaBernardo Dominic QUALIFIED
Adams MorascaFranceElwin Sharvill RENEWAL
Rodrigues CampainSpainOnyama Limba QUALIFIED
Juan WieserBrazilXuxue Feng UNQUALIFIED
Faith GillianSpainBernardo Dominic NEW
Izzy GarufiAustraliaXuxue Feng NEGOTIATION
Isabel BowleyIndiaXuxue Feng RENEWAL
Silvio SlusarskiSpainStephen Shaw RENEWAL
Mujtaba NickaFranceBernardo Dominic QUALIFIED
Cody SaylorsBrazilIvan Magalhaes RENEWAL
Morrow RutaRussiaBernardo Dominic UNQUALIFIED
Juan WieserBrazilOnyama Limba PROPOSAL
Ashley DoeUnited KingdomIoni Bowcher UNQUALIFIED
Jeanfrancois VenereSpainStephen Shaw NEW
Ivar PaprockiSpainAnna Fali UNQUALIFIED
Misaki RoysterRussiaOnyama 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>