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
Kadeem FlosiIndiaIoni Bowcher PROPOSAL
Mujtaba NickaArgentinaAsiya Javayant NEW
Kaitlin OstroskyIndiaAnna Fali RENEWAL
Jones VocelkaUnited KingdomBernardo Dominic RENEWAL
Smith GlickIndiaElwin Sharvill NEGOTIATION
Jones VocelkaBrazilBernardo Dominic UNQUALIFIED
Octavia MaletRussiaBernardo Dominic QUALIFIED
Emily WhobreyItalyAmy Elsner QUALIFIED
Deepesh ChuiArgentinaIoni Bowcher NEW
Greenwood BologniaItalyAsiya Javayant QUALIFIED
Octavia MaletJapanStephen Shaw NEGOTIATION
Aditya KuskoItalyAmy Elsner RENEWAL
Misaki RoysterIndiaAmy Elsner RENEWAL
Tony FollerAustraliaOnyama Limba RENEWAL
Claire TollnerUnited KingdomAmy Elsner NEGOTIATION
Octavia MaletBrazilXuxue Feng QUALIFIED
Salvatore StockhamFranceAnna Fali QUALIFIED
Munro FerenczBrazilAsiya Javayant RENEWAL
Maisha RulapaughRussiaAsiya Javayant UNQUALIFIED
Kaitlin OstroskyAustraliaAmy Elsner QUALIFIED
Wickens NestleCanadaAmy Elsner RENEWAL
Murillo MaletBrazilStephen Shaw NEGOTIATION
Clifford RimGermanyElwin Sharvill NEGOTIATION
Chavez BriddickRussiaIvan Magalhaes UNQUALIFIED
Wickens NestleRussiaIoni Bowcher RENEWAL
Leon OldroydArgentinaAsiya Javayant PROPOSAL
Ricardo GauchoBrazilOnyama Limba UNQUALIFIED
Silvio SlusarskiBrazilIoni Bowcher NEW
Faith GillianRussiaAnna Fali PROPOSAL
Claire TollnerRussiaStephen Shaw PROPOSAL
Adams MorascaBrazilAmy Elsner UNQUALIFIED
Jeanfrancois VenereUnited KingdomAsiya Javayant QUALIFIED
Jeanfrancois VenereRussiaOnyama Limba PROPOSAL
Jennifer AmigonBrazilXuxue Feng PROPOSAL
Antonio CaudyCanadaAnna Fali RENEWAL
Antonio CaudyJapanElwin Sharvill NEW
Murillo MaletItalyXuxue Feng NEGOTIATION
Mayumi KolmetzAustraliaElwin Sharvill RENEWAL
Wickens NestleRussiaAmy Elsner PROPOSAL
Aika InouyeCanadaAnna Fali RENEWAL
Salvatore StockhamUnited KingdomOnyama Limba QUALIFIED
Emily WhobreySpainBernardo Dominic RENEWAL
Kaitlin OstroskyCanadaStephen Shaw RENEWAL
Maisha RulapaughGermanyXuxue Feng PROPOSAL
Munro FerenczArgentinaAsiya Javayant UNQUALIFIED
Salvatore StockhamSpainBernardo Dominic NEGOTIATION
Maria MarrierArgentinaBernardo Dominic NEGOTIATION
Murillo MaletAustraliaOnyama Limba NEGOTIATION
Silvio SlusarskiCanadaOnyama Limba UNQUALIFIED
Juan WieserSpainElwin Sharvill UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Jefferson SchemmerCanadaStephen Shaw QUALIFIED
Sinclair WaycottItalyIvan Magalhaes RENEWAL
Clifford RimUnited KingdomAmy Elsner PROPOSAL
Ricardo GauchoItalyAsiya Javayant QUALIFIED
Faith GillianAustraliaIoni Bowcher NEGOTIATION
Octavia MaletGermanyAnna Fali NEGOTIATION
Arvin AlbaresArgentinaBernardo Dominic QUALIFIED
Ashley DoeCanadaXuxue Feng UNQUALIFIED
Antonio CaudyRussiaAnna Fali RENEWAL
Clifford RimBrazilStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Adams MorascaRussia2026-04-08Truhlar And Truhlar Attys PROPOSAL60Onyama Limba
1001Costa DilliardAustralia2026-04-14Benton, John B Jr UNQUALIFIED12Anna Fali
1002Juan WieserRussia2026-04-13Commercial Press UNQUALIFIED69Xuxue Feng
1003Silvio SlusarskiItaly2026-04-20Feltz Printing Service QUALIFIED18Amy Elsner
1004Ashley DoeIndia2026-04-09Commercial Press NEW36Onyama Limba
1005Arvin AlbaresFrance2026-04-24Buckley Miller Wright UNQUALIFIED55Ivan Magalhaes
1006Jeanfrancois VenereJapan2026-04-15Commercial Press NEGOTIATION86Elwin Sharvill
1007Sinclair WaycottBrazil2026-04-13Buckley Miller Wright PROPOSAL86Ivan Magalhaes
1008Jones VocelkaJapan2026-04-15Dorl, James J Esq NEW93Stephen Shaw
1009Mayumi KolmetzIndia2026-04-07Truhlar And Truhlar Attys QUALIFIED72Ivan Magalhaes
1010Claire TollnerAustralia2026-04-15Chemel, James L Cpa NEGOTIATION76Xuxue Feng
1011Mujtaba NickaArgentina2026-04-14Benton, John B Jr UNQUALIFIED89Xuxue Feng
1012Ricardo GauchoJapan2026-04-12Morlong Associates PROPOSAL24Ivan Magalhaes
1013Francesco ShinkoFrance2026-04-08Commercial Press UNQUALIFIED42Elwin Sharvill
1014Maria MarrierCanada2026-04-02Dorl, James J Esq PROPOSAL25Amy Elsner
1015Isabel BowleyBrazil2026-04-30Feltz Printing Service UNQUALIFIED52Stephen Shaw
1016Francesco ShinkoFrance2026-04-07Truhlar And Truhlar Attys PROPOSAL36Ivan Magalhaes
1017Izzy GarufiGermany2026-04-09Commercial Press QUALIFIED13Stephen Shaw
1018Mayumi KolmetzRussia2026-04-22Rangoni Of Florence UNQUALIFIED88Stephen Shaw
1019Smith GlickUnited Kingdom2026-04-27Rangoni Of Florence NEW25Stephen Shaw
1020Stacey MacleadFrance2026-04-22Morlong Associates QUALIFIED38Asiya Javayant
1021Rodrigues CampainBrazil2026-04-20Printing Dimensions QUALIFIED44Anna Fali
1022Ashley DoeRussia2026-04-09Truhlar And Truhlar Attys NEGOTIATION14Elwin Sharvill
1023Costa DilliardSpain2026-04-24Buckley Miller Wright PROPOSAL99Ivan Magalhaes
1024Costa DilliardUnited Kingdom2026-04-04Buckley Miller Wright QUALIFIED35Onyama Limba
1025Deepesh ChuiAustralia2026-04-24Feltz Printing Service RENEWAL4Ioni Bowcher
1026Stacey MacleadAustralia2026-04-02Chemel, James L Cpa RENEWAL0Stephen Shaw
1027Maisha RulapaughRussia2026-04-16King, Christopher A Esq PROPOSAL67Amy Elsner
1028James ButtAustralia2026-04-21Commercial Press NEW76Asiya Javayant
1029Stacey MacleadBrazil2026-04-20Morlong Associates UNQUALIFIED98Bernardo Dominic
1030Murillo MaletAustralia2026-04-14Dorl, James J Esq NEGOTIATION3Onyama Limba
1031Stacey MacleadArgentina2026-04-07King, Christopher A Esq UNQUALIFIED91Xuxue Feng
1032Francesco ShinkoAustralia2026-05-01Feltz Printing Service NEGOTIATION53Anna Fali
1033Adams MorascaUnited Kingdom2026-04-09Chemel, James L Cpa NEW12Ivan Magalhaes
1034Mujtaba NickaArgentina2026-04-25Chemel, James L Cpa UNQUALIFIED82Anna Fali
1035Francesco ShinkoIndia2026-04-12Commercial Press NEGOTIATION24Stephen Shaw
1036Ashley DoeFrance2026-04-29Truhlar And Truhlar Attys UNQUALIFIED16Elwin Sharvill
1037Greenwood BologniaRussia2026-04-28Chanay, Jeffrey A Esq NEW69Ivan Magalhaes
1038Stacey MacleadAustralia2026-04-29King, Christopher A Esq RENEWAL53Anna Fali
1039James ButtSpain2026-04-17Chemel, James L Cpa PROPOSAL37Bernardo Dominic
1040Aika InouyeFrance2026-04-13Benton, John B Jr NEGOTIATION56Anna Fali
1041Claire TollnerAustralia2026-04-14King, Christopher A Esq NEGOTIATION1Asiya Javayant
1042Aruna FigeroaRussia2026-04-08Rousseaux, Michael Esq NEGOTIATION50Anna Fali
1043Izzy GarufiUnited Kingdom2026-04-10Feiner Bros UNQUALIFIED93Onyama Limba
1044Aditya KuskoUnited Kingdom2026-04-30Chapman, Ross E Esq QUALIFIED53Asiya Javayant
1045Faith GillianSpain2026-04-11Truhlar And Truhlar Attys RENEWAL25Stephen Shaw
1046Adams MorascaCanada2026-04-11Feiner Bros NEGOTIATION55Ivan Magalhaes
1047Juan WieserFrance2026-04-29Feltz Printing Service NEW91Anna Fali
1048Antonio CaudyRussia2026-04-30Chemel, James L Cpa RENEWAL16Onyama Limba
1049Smith GlickBrazil2026-04-24Commercial Press PROPOSAL79Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Tony FollerItalyElwin Sharvill UNQUALIFIED
Aruna FigeroaJapanAmy Elsner NEW
Tony FollerUnited KingdomOnyama Limba QUALIFIED
Leon OldroydSpainAmy Elsner UNQUALIFIED
Chavez BriddickIndiaBernardo Dominic QUALIFIED
Jeanfrancois VenereRussiaStephen Shaw RENEWAL
Maisha RulapaughGermanyAsiya Javayant RENEWAL
Leja CaldareraBrazilOnyama Limba PROPOSAL
Leon OldroydSpainBernardo Dominic NEGOTIATION
Arvin AlbaresFranceStephen Shaw UNQUALIFIED
Aditya KuskoUnited KingdomAnna Fali RENEWAL
Greenwood BologniaJapanStephen Shaw NEW
Greenwood BologniaJapanStephen Shaw NEGOTIATION
Wickens NestleAustraliaAmy Elsner RENEWAL
Adams MorascaIndiaAmy Elsner NEGOTIATION
Aditya KuskoJapanXuxue Feng PROPOSAL
Maisha RulapaughJapanBernardo Dominic NEW
Ashley DoeSpainXuxue Feng QUALIFIED
Tony FollerJapanIvan Magalhaes PROPOSAL
Clifford RimItalyIoni Bowcher UNQUALIFIED
David DarakjyArgentinaBernardo Dominic NEGOTIATION
Mayumi KolmetzGermanyOnyama Limba RENEWAL
Smith GlickCanadaOnyama Limba PROPOSAL
Misaki RoysterIndiaIvan Magalhaes NEW
Tony FollerSpainStephen Shaw UNQUALIFIED
Aruna FigeroaArgentinaBernardo Dominic NEGOTIATION
Ricardo GauchoFranceAsiya Javayant RENEWAL
Aruna FigeroaFranceStephen Shaw UNQUALIFIED
Leon OldroydGermanyBernardo Dominic RENEWAL
Maisha RulapaughFranceBernardo Dominic PROPOSAL
David DarakjyCanadaOnyama Limba RENEWAL
Claire TollnerArgentinaIoni Bowcher UNQUALIFIED
Aditya KuskoBrazilXuxue Feng PROPOSAL
Faith GillianJapanBernardo Dominic UNQUALIFIED
Ricardo GauchoItalyStephen Shaw NEW
Rodrigues CampainFranceElwin Sharvill UNQUALIFIED
Antonio CaudyItalyOnyama Limba QUALIFIED
Nicolas IturbideAustraliaAsiya Javayant QUALIFIED
Clifford RimAustraliaIoni Bowcher QUALIFIED
Wickens NestleJapanIvan Magalhaes NEGOTIATION
Silvio SlusarskiUnited KingdomAnna Fali NEGOTIATION
Aruna FigeroaIndiaAnna Fali QUALIFIED
Chavez BriddickFranceIvan Magalhaes NEGOTIATION
Greenwood BologniaUnited KingdomAsiya Javayant QUALIFIED
Antonio CaudyJapanBernardo Dominic UNQUALIFIED
Clifford RimBrazilXuxue Feng QUALIFIED
Kaitlin OstroskyBrazilAmy Elsner RENEWAL
Morrow RutaItalyOnyama Limba NEW
Izzy GarufiGermanyAnna Fali PROPOSAL
Misaki RoysterAustraliaAnna Fali NEGOTIATION
Frozen Columns
Name
Wickens Nestle
Silvio Slusarski
Francesco Shinko
Clifford Rim
Aruna Figeroa
Cody Saylors
Isabel Bowley
Aruna Figeroa
Munro Ferencz
Octavia Malet
Alejandro Perin
Francesco Shinko
Julie Stenseth
Izzy Garufi
Stacey Maclead
Stacey Maclead
Leja Caldarera
Jeanfrancois Venere
Misaki Royster
Julie Stenseth
Misaki Royster
Misaki Royster
James Butt
Munro Ferencz
Emily Whobrey
Darci Poquette
Nicolas Iturbide
Claire Tollner
Mujtaba Nicka
James Butt
Faith Gillian
Tony Foller
Smith Glick
Kaitlin Ostrosky
Johnson Sergi
Juan Wieser
Leon Oldroyd
David Darakjy
Sinclair Waycott
Misaki Royster
Leon Oldroyd
Sinclair Waycott
Ricardo Gaucho
Smith Glick
Maria Marrier
David Darakjy
Emily Whobrey
Aika Inouye
Mayumi Kolmetz
Leja Caldarera
IdCountryDate
1000Russia2026-04-18
1001Argentina2026-04-20
1002Australia2026-04-16
1003India2026-04-29
1004France2026-04-06
1005France2026-04-23
1006Australia2026-04-29
1007Japan2026-04-19
1008Argentina2026-04-24
1009Brazil2026-04-05
1010United Kingdom2026-04-12
1011Spain2026-04-22
1012Canada2026-04-25
1013Italy2026-04-04
1014Argentina2026-04-03
1015Brazil2026-04-27
1016Germany2026-04-18
1017India2026-04-18
1018France2026-04-16
1019Canada2026-04-03
1020Australia2026-04-02
1021Russia2026-04-07
1022Argentina2026-04-28
1023France2026-04-13
1024Spain2026-04-12
1025India2026-04-12
1026France2026-04-22
1027France2026-04-18
1028Canada2026-04-23
1029Germany2026-04-27
1030United Kingdom2026-05-01
1031Australia2026-04-28
1032Germany2026-04-20
1033India2026-04-05
1034Spain2026-04-15
1035Canada2026-04-17
1036Russia2026-05-01
1037Canada2026-04-14
1038Japan2026-04-22
1039Australia2026-04-27
1040Canada2026-04-18
1041India2026-04-09
1042Brazil2026-04-04
1043Argentina2026-04-27
1044Australia2026-04-26
1045Japan2026-04-13
1046Spain2026-04-07
1047Russia2026-04-24
1048Brazil2026-04-06
1049Japan2026-04-03

On-Demand Data

NameIdCountryDate
Izzy Garufi1000Canada2026-04-11
David Darakjy1001Italy2026-04-19
Misaki Royster1002Argentina2026-04-14
Izzy Garufi1003Brazil2026-04-29
Misaki Royster1004India2026-04-30
Sinclair Waycott1005Italy2026-04-19
Ashley Doe1006Brazil2026-04-16
Jefferson Schemmer1007Argentina2026-04-11
Misaki Royster1008India2026-04-09
Maisha Rulapaugh1009Australia2026-04-21
Misaki Royster1010Australia2026-04-18
Francesco Shinko1011India2026-04-22
Kaitlin Ostrosky1012Japan2026-04-11
Francesco Shinko1013Spain2026-04-25
Jennifer Amigon1014France2026-04-26
Clifford Rim1015Italy2026-04-18
Arvin Albares1016Argentina2026-04-17
Emily Whobrey1017Australia2026-04-18
Morrow Ruta1018India2026-04-06
Silvio Slusarski1019Australia2026-04-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro PerinJapanIoni Bowcher QUALIFIED
Claire TollnerJapanAnna Fali PROPOSAL
Murillo MaletItalyXuxue Feng PROPOSAL
Ashley DoeBrazilIvan Magalhaes NEW
Isabel BowleyArgentinaIvan Magalhaes NEW
Adams MorascaCanadaAnna Fali RENEWAL
Arvin AlbaresFranceBernardo Dominic NEGOTIATION
Leon OldroydSpainElwin Sharvill NEGOTIATION
Tony FollerArgentinaAmy Elsner QUALIFIED
Jones VocelkaCanadaBernardo Dominic UNQUALIFIED
Claire TollnerArgentinaBernardo Dominic NEW
Adams MorascaArgentinaIvan Magalhaes UNQUALIFIED
Octavia MaletUnited KingdomElwin Sharvill RENEWAL
Costa DilliardGermanyStephen Shaw UNQUALIFIED
Tony FollerArgentinaOnyama Limba NEGOTIATION
Wickens NestleBrazilAnna Fali QUALIFIED
Ashley DoeArgentinaAnna Fali NEW
Nicolas IturbideIndiaAnna Fali UNQUALIFIED
Mayumi KolmetzCanadaAsiya Javayant UNQUALIFIED
Jeanfrancois VenereRussiaElwin Sharvill UNQUALIFIED
Leja CaldareraArgentinaAsiya Javayant RENEWAL
Jeanfrancois VenereGermanyStephen Shaw NEW
Emily WhobreyArgentinaIoni Bowcher QUALIFIED
Faith GillianArgentinaOnyama Limba RENEWAL
Izzy GarufiRussiaAmy Elsner UNQUALIFIED
Juan WieserArgentinaXuxue Feng QUALIFIED
Claire TollnerUnited KingdomBernardo Dominic RENEWAL
Francesco ShinkoFranceIvan Magalhaes RENEWAL
Murillo MaletAustraliaXuxue Feng UNQUALIFIED
Deepesh ChuiUnited KingdomStephen Shaw UNQUALIFIED
Juan WieserFranceAsiya Javayant UNQUALIFIED
Leja CaldareraCanadaAnna Fali PROPOSAL
Mayumi KolmetzBrazilStephen Shaw NEGOTIATION
Mayumi KolmetzArgentinaElwin Sharvill QUALIFIED
Jefferson SchemmerItalyElwin Sharvill PROPOSAL
Faith GillianGermanyOnyama Limba NEGOTIATION
Maisha RulapaughCanadaAsiya Javayant UNQUALIFIED
Alejandro PerinItalyStephen Shaw NEGOTIATION
Emily WhobreyUnited KingdomIvan Magalhaes UNQUALIFIED
James ButtJapanAsiya Javayant 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>