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
Mujtaba NickaSpainStephen Shaw QUALIFIED
David DarakjyIndiaAnna Fali NEW
Misaki RoysterBrazilBernardo Dominic NEW
Antonio CaudyIndiaAmy Elsner RENEWAL
Mujtaba NickaAustraliaIoni Bowcher RENEWAL
Chavez BriddickCanadaAsiya Javayant RENEWAL
Greenwood BologniaGermanyAsiya Javayant NEGOTIATION
Chavez BriddickBrazilXuxue Feng NEW
Emily WhobreyRussiaAnna Fali NEGOTIATION
Morrow RutaItalyAmy Elsner NEW
Costa DilliardBrazilOnyama Limba RENEWAL
Jefferson SchemmerSpainIoni Bowcher PROPOSAL
Wickens NestleRussiaIvan Magalhaes RENEWAL
Mujtaba NickaIndiaOnyama Limba UNQUALIFIED
Smith GlickAustraliaIoni Bowcher RENEWAL
Smith GlickItalyStephen Shaw PROPOSAL
Emily WhobreyArgentinaElwin Sharvill PROPOSAL
Deepesh ChuiCanadaElwin Sharvill PROPOSAL
Emily WhobreyIndiaElwin Sharvill QUALIFIED
Kaitlin OstroskyGermanyOnyama Limba NEW
Arvin AlbaresJapanStephen Shaw UNQUALIFIED
Maisha RulapaughSpainIvan Magalhaes NEGOTIATION
Kadeem FlosiJapanStephen Shaw NEGOTIATION
Tony FollerUnited KingdomXuxue Feng PROPOSAL
Deepesh ChuiBrazilAmy Elsner RENEWAL
Sinclair WaycottIndiaIvan Magalhaes NEGOTIATION
Sinclair WaycottUnited KingdomAnna Fali PROPOSAL
Ivar PaprockiSpainAnna Fali UNQUALIFIED
Ricardo GauchoCanadaAnna Fali NEW
Wickens NestleGermanyIoni Bowcher NEW
Stacey MacleadFranceStephen Shaw RENEWAL
Cody SaylorsBrazilAmy Elsner NEW
Greenwood BologniaFranceIvan Magalhaes RENEWAL
Maisha RulapaughFranceElwin Sharvill NEGOTIATION
Emily WhobreyArgentinaElwin Sharvill NEW
Ricardo GauchoItalyOnyama Limba NEGOTIATION
Greenwood BologniaArgentinaIvan Magalhaes NEW
Aditya KuskoSpainBernardo Dominic UNQUALIFIED
Aditya KuskoCanadaXuxue Feng NEGOTIATION
Morrow RutaBrazilAnna Fali NEW
Antonio CaudyBrazilIoni Bowcher QUALIFIED
Salvatore StockhamSpainAsiya Javayant NEGOTIATION
Leon OldroydGermanyElwin Sharvill QUALIFIED
Francesco ShinkoAustraliaStephen Shaw PROPOSAL
Wickens NestleArgentinaAnna Fali PROPOSAL
Aruna FigeroaFranceOnyama Limba RENEWAL
David DarakjyArgentinaAnna Fali QUALIFIED
Ivar PaprockiBrazilAmy Elsner QUALIFIED
Juan WieserRussiaAnna Fali NEGOTIATION
Nicolas IturbideItalyAnna Fali NEW
Horizontal
NameCountryRepresentativeStatus
Antonio CaudyUnited KingdomAsiya Javayant NEW
Aika InouyeCanadaIoni Bowcher RENEWAL
Jones VocelkaCanadaIvan Magalhaes NEGOTIATION
Jones VocelkaCanadaXuxue Feng NEGOTIATION
Smith GlickUnited KingdomAsiya Javayant NEGOTIATION
Ashley DoeAustraliaIoni Bowcher RENEWAL
Morrow RutaAustraliaBernardo Dominic NEGOTIATION
Smith GlickRussiaIvan Magalhaes PROPOSAL
Sinclair WaycottGermanyOnyama Limba NEW
Misaki RoysterFranceBernardo Dominic UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio CaudyJapan2026-06-15Benton, John B Jr RENEWAL87Bernardo Dominic
1001Misaki RoysterAustralia2026-06-04Chapman, Ross E Esq RENEWAL23Ioni Bowcher
1002Smith GlickSpain2026-05-28Morlong Associates QUALIFIED98Bernardo Dominic
1003Antonio CaudyItaly2026-05-23Commercial Press NEW62Onyama Limba
1004Jefferson SchemmerItaly2026-05-28Feltz Printing Service NEW55Amy Elsner
1005Leon OldroydIndia2026-06-05Morlong Associates RENEWAL9Onyama Limba
1006Ricardo GauchoSpain2026-05-26Rangoni Of Florence PROPOSAL82Elwin Sharvill
1007Deepesh ChuiSpain2026-06-08Feltz Printing Service NEGOTIATION56Bernardo Dominic
1008Rodrigues CampainSpain2026-06-19Feiner Bros NEW65Stephen Shaw
1009Deepesh ChuiAustralia2026-05-29Feiner Bros QUALIFIED90Stephen Shaw
1010Jennifer AmigonIndia2026-06-18Chanay, Jeffrey A Esq RENEWAL62Bernardo Dominic
1011Aika InouyeAustralia2026-06-20Benton, John B Jr RENEWAL73Elwin Sharvill
1012Tony FollerSpain2026-05-27Truhlar And Truhlar Attys PROPOSAL51Onyama Limba
1013Aruna FigeroaArgentina2026-06-02Printing Dimensions PROPOSAL46Stephen Shaw
1014Morrow RutaRussia2026-06-21Chemel, James L Cpa UNQUALIFIED14Stephen Shaw
1015Emily WhobreyIndia2026-06-12Printing Dimensions UNQUALIFIED85Stephen Shaw
1016Morrow RutaSpain2026-06-16Chanay, Jeffrey A Esq NEGOTIATION24Xuxue Feng
1017Deepesh ChuiUnited Kingdom2026-05-23Rangoni Of Florence PROPOSAL4Asiya Javayant
1018Misaki RoysterJapan2026-06-21Feltz Printing Service NEW38Ivan Magalhaes
1019Costa DilliardItaly2026-06-08Dorl, James J Esq RENEWAL36Ivan Magalhaes
1020Morrow RutaCanada2026-06-17Printing Dimensions NEGOTIATION41Ivan Magalhaes
1021Alejandro PerinArgentina2026-06-14Commercial Press RENEWAL27Xuxue Feng
1022Kaitlin OstroskyGermany2026-06-02Rousseaux, Michael Esq RENEWAL47Elwin Sharvill
1023Deepesh ChuiFrance2026-06-17Chemel, James L Cpa QUALIFIED33Amy Elsner
1024Misaki RoysterBrazil2026-05-28Rangoni Of Florence UNQUALIFIED9Asiya Javayant
1025Leja CaldareraArgentina2026-06-04Commercial Press NEGOTIATION18Onyama Limba
1026Mujtaba NickaAustralia2026-06-02Rousseaux, Michael Esq RENEWAL38Xuxue Feng
1027Costa DilliardCanada2026-05-31Printing Dimensions QUALIFIED36Ivan Magalhaes
1028Jones VocelkaGermany2026-06-19Printing Dimensions PROPOSAL52Bernardo Dominic
1029Misaki RoysterArgentina2026-06-07King, Christopher A Esq QUALIFIED40Ivan Magalhaes
1030Claire TollnerArgentina2026-05-25Dorl, James J Esq NEW84Asiya Javayant
1031Leon OldroydIndia2026-06-13Feiner Bros UNQUALIFIED73Ivan Magalhaes
1032Clifford RimRussia2026-06-07Commercial Press UNQUALIFIED68Xuxue Feng
1033David DarakjyBrazil2026-05-27Truhlar And Truhlar Attys QUALIFIED30Ivan Magalhaes
1034David DarakjyCanada2026-06-05Feiner Bros UNQUALIFIED90Xuxue Feng
1035Aruna FigeroaRussia2026-06-13Printing Dimensions NEGOTIATION92Onyama Limba
1036Alejandro PerinFrance2026-05-24Rousseaux, Michael Esq PROPOSAL41Asiya Javayant
1037Adams MorascaFrance2026-06-18King, Christopher A Esq QUALIFIED27Asiya Javayant
1038Jefferson SchemmerUnited Kingdom2026-05-31King, Christopher A Esq NEW33Anna Fali
1039Alejandro PerinJapan2026-06-03Feiner Bros RENEWAL34Bernardo Dominic
1040Francesco ShinkoJapan2026-05-29Chanay, Jeffrey A Esq RENEWAL98Bernardo Dominic
1041Salvatore StockhamIndia2026-06-04Morlong Associates QUALIFIED57Bernardo Dominic
1042Mujtaba NickaArgentina2026-05-29King, Christopher A Esq QUALIFIED37Asiya Javayant
1043Chavez BriddickSpain2026-06-21Chemel, James L Cpa QUALIFIED33Stephen Shaw
1044Faith GillianSpain2026-06-03Printing Dimensions UNQUALIFIED34Bernardo Dominic
1045Aika InouyeSpain2026-06-09Printing Dimensions PROPOSAL33Bernardo Dominic
1046Francesco ShinkoSpain2026-06-02King, Christopher A Esq RENEWAL3Asiya Javayant
1047Johnson SergiJapan2026-06-03Printing Dimensions NEW81Onyama Limba
1048Deepesh ChuiUnited Kingdom2026-05-30Chemel, James L Cpa PROPOSAL28Ioni Bowcher
1049Johnson SergiRussia2026-06-14Buckley Miller Wright UNQUALIFIED66Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Faith GillianItalyOnyama Limba NEGOTIATION
Smith GlickArgentinaXuxue Feng UNQUALIFIED
Jones VocelkaRussiaIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereSpainElwin Sharvill UNQUALIFIED
Emily WhobreyUnited KingdomStephen Shaw PROPOSAL
Aruna FigeroaUnited KingdomAsiya Javayant NEGOTIATION
Claire TollnerFranceXuxue Feng UNQUALIFIED
Misaki RoysterRussiaBernardo Dominic UNQUALIFIED
Nicolas IturbideJapanAnna Fali UNQUALIFIED
Ricardo GauchoCanadaOnyama Limba UNQUALIFIED
Maisha RulapaughAustraliaElwin Sharvill UNQUALIFIED
Alejandro PerinRussiaBernardo Dominic PROPOSAL
Nicolas IturbideCanadaBernardo Dominic UNQUALIFIED
David DarakjyArgentinaOnyama Limba RENEWAL
Smith GlickBrazilXuxue Feng RENEWAL
Aruna FigeroaAustraliaAnna Fali NEGOTIATION
Mujtaba NickaItalyIvan Magalhaes NEGOTIATION
Deepesh ChuiJapanXuxue Feng UNQUALIFIED
Aika InouyeBrazilAnna Fali NEW
Ricardo GauchoIndiaAsiya Javayant NEW
Isabel BowleyBrazilXuxue Feng NEW
Nicolas IturbideIndiaAnna Fali NEW
Greenwood BologniaArgentinaElwin Sharvill PROPOSAL
Leja CaldareraRussiaAsiya Javayant NEGOTIATION
Silvio SlusarskiItalyAnna Fali NEW
Kaitlin OstroskyRussiaElwin Sharvill RENEWAL
Misaki RoysterAustraliaAmy Elsner QUALIFIED
Darci PoquetteJapanAnna Fali NEGOTIATION
Deepesh ChuiAustraliaAsiya Javayant NEGOTIATION
Stacey MacleadBrazilXuxue Feng RENEWAL
Smith GlickGermanyElwin Sharvill UNQUALIFIED
Johnson SergiAustraliaAsiya Javayant NEGOTIATION
Johnson SergiArgentinaOnyama Limba UNQUALIFIED
Munro FerenczUnited KingdomAsiya Javayant UNQUALIFIED
Jefferson SchemmerSpainStephen Shaw NEW
Murillo MaletCanadaIoni Bowcher QUALIFIED
Kadeem FlosiSpainAsiya Javayant UNQUALIFIED
Julie StensethUnited KingdomXuxue Feng UNQUALIFIED
Claire TollnerAustraliaBernardo Dominic NEGOTIATION
Ashley DoeArgentinaAsiya Javayant PROPOSAL
Leon OldroydItalyStephen Shaw NEW
Arvin AlbaresRussiaAnna Fali QUALIFIED
Jennifer AmigonGermanyIoni Bowcher QUALIFIED
Maisha RulapaughAustraliaAsiya Javayant QUALIFIED
Alejandro PerinIndiaIoni Bowcher NEW
Izzy GarufiGermanyAsiya Javayant PROPOSAL
Antonio CaudySpainBernardo Dominic NEW
Jones VocelkaRussiaAnna Fali PROPOSAL
Chavez BriddickItalyIvan Magalhaes PROPOSAL
Rodrigues CampainIndiaXuxue Feng NEGOTIATION
Frozen Columns
Name
Munro Ferencz
David Darakjy
Sinclair Waycott
Aruna Figeroa
Ashley Doe
Costa Dilliard
Munro Ferencz
Smith Glick
Stacey Maclead
Darci Poquette
Deepesh Chui
Clifford Rim
Rodrigues Campain
Mujtaba Nicka
Tony Foller
Maisha Rulapaugh
Ricardo Gaucho
Darci Poquette
Julie Stenseth
Ashley Doe
Julie Stenseth
Aika Inouye
Costa Dilliard
Costa Dilliard
Faith Gillian
Costa Dilliard
Costa Dilliard
Murillo Malet
Deepesh Chui
Johnson Sergi
Misaki Royster
Jones Vocelka
Tony Foller
Morrow Ruta
Alejandro Perin
Darci Poquette
David Darakjy
Faith Gillian
Smith Glick
Wickens Nestle
Kadeem Flosi
Silvio Slusarski
Jones Vocelka
Antonio Caudy
Izzy Garufi
Ashley Doe
Nicolas Iturbide
Antonio Caudy
Kadeem Flosi
Tony Foller
IdCountryDate
1000Russia2026-06-19
1001Italy2026-06-17
1002United Kingdom2026-06-04
1003Brazil2026-06-03
1004Italy2026-05-30
1005Spain2026-06-09
1006Canada2026-06-19
1007Italy2026-06-19
1008United Kingdom2026-06-17
1009Italy2026-06-14
1010United Kingdom2026-06-15
1011Argentina2026-06-19
1012Russia2026-06-06
1013Brazil2026-06-08
1014Japan2026-06-19
1015Japan2026-05-25
1016Argentina2026-05-26
1017Canada2026-06-09
1018Brazil2026-06-03
1019France2026-06-18
1020India2026-06-14
1021Argentina2026-06-05
1022Australia2026-06-07
1023France2026-06-20
1024Italy2026-05-25
1025Spain2026-06-03
1026Japan2026-06-11
1027Italy2026-06-16
1028Italy2026-05-30
1029India2026-06-18
1030United Kingdom2026-06-18
1031Italy2026-06-10
1032India2026-06-09
1033Russia2026-05-26
1034Russia2026-05-26
1035France2026-06-06
1036Brazil2026-06-13
1037Japan2026-06-10
1038Brazil2026-06-05
1039United Kingdom2026-06-14
1040United Kingdom2026-05-31
1041India2026-06-06
1042India2026-06-13
1043Russia2026-06-15
1044India2026-06-08
1045Australia2026-05-26
1046Russia2026-06-02
1047Italy2026-06-21
1048Germany2026-06-13
1049Italy2026-06-05

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000Russia2026-05-28
Deepesh Chui1001Australia2026-06-13
Jones Vocelka1002Argentina2026-06-06
Aruna Figeroa1003Argentina2026-06-06
Maisha Rulapaugh1004Canada2026-06-14
Izzy Garufi1005Germany2026-05-25
Jones Vocelka1006Spain2026-06-19
Stacey Maclead1007India2026-06-02
Aruna Figeroa1008Spain2026-06-01
Chavez Briddick1009Italy2026-06-15
Kaitlin Ostrosky1010Italy2026-06-20
Alejandro Perin1011United Kingdom2026-05-28
Juan Wieser1012Argentina2026-06-08
Isabel Bowley1013India2026-06-18
Jennifer Amigon1014United Kingdom2026-06-17
Morrow Ruta1015Russia2026-06-18
Morrow Ruta1016Germany2026-05-24
Munro Ferencz1017Argentina2026-06-18
Tony Foller1018Germany2026-05-27
Johnson Sergi1019United Kingdom2026-06-19
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jefferson SchemmerBrazilIvan Magalhaes PROPOSAL
Antonio CaudyUnited KingdomOnyama Limba NEGOTIATION
Deepesh ChuiFranceAsiya Javayant RENEWAL
Cody SaylorsBrazilXuxue Feng QUALIFIED
Aika InouyeFranceXuxue Feng QUALIFIED
Jennifer AmigonAustraliaOnyama Limba NEGOTIATION
Maria MarrierRussiaAmy Elsner RENEWAL
Jeanfrancois VenereBrazilXuxue Feng NEW
Kaitlin OstroskyUnited KingdomOnyama Limba PROPOSAL
Costa DilliardFranceBernardo Dominic NEGOTIATION
Costa DilliardRussiaBernardo Dominic NEW
Faith GillianAustraliaElwin Sharvill NEGOTIATION
Costa DilliardCanadaIoni Bowcher NEGOTIATION
Jefferson SchemmerBrazilIvan Magalhaes NEGOTIATION
Clifford RimFranceIvan Magalhaes RENEWAL
Maisha RulapaughFranceOnyama Limba NEW
Juan WieserSpainElwin Sharvill PROPOSAL
Salvatore StockhamIndiaXuxue Feng NEGOTIATION
Costa DilliardSpainXuxue Feng PROPOSAL
Octavia MaletIndiaIoni Bowcher PROPOSAL
Clifford RimUnited KingdomAsiya Javayant QUALIFIED
Murillo MaletBrazilXuxue Feng PROPOSAL
Mujtaba NickaIndiaAsiya Javayant RENEWAL
Leon OldroydJapanBernardo Dominic NEGOTIATION
Silvio SlusarskiSpainOnyama Limba NEGOTIATION
Costa DilliardIndiaStephen Shaw RENEWAL
Sinclair WaycottIndiaOnyama Limba NEGOTIATION
James ButtFranceIoni Bowcher PROPOSAL
Cody SaylorsCanadaAsiya Javayant NEW
Leja CaldareraIndiaXuxue Feng RENEWAL
Chavez BriddickAustraliaStephen Shaw QUALIFIED
Rodrigues CampainAustraliaOnyama Limba QUALIFIED
Ashley DoeBrazilAnna Fali PROPOSAL
Chavez BriddickCanadaAmy Elsner NEGOTIATION
Rodrigues CampainArgentinaBernardo Dominic UNQUALIFIED
Emily WhobreyItalyAmy Elsner UNQUALIFIED
Kaitlin OstroskyItalyAmy Elsner UNQUALIFIED
Aditya KuskoRussiaElwin Sharvill NEGOTIATION
Misaki RoysterGermanyElwin Sharvill QUALIFIED
Ricardo GauchoArgentinaIvan Magalhaes QUALIFIED

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