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 NickaAustraliaAmy Elsner UNQUALIFIED
Munro FerenczBrazilBernardo Dominic NEGOTIATION
Claire TollnerArgentinaStephen Shaw UNQUALIFIED
James ButtSpainStephen Shaw NEW
Darci PoquetteIndiaAsiya Javayant QUALIFIED
Isabel BowleyRussiaIoni Bowcher RENEWAL
Mujtaba NickaArgentinaAmy Elsner QUALIFIED
Silvio SlusarskiGermanyXuxue Feng RENEWAL
Juan WieserArgentinaAmy Elsner RENEWAL
Darci PoquetteIndiaXuxue Feng PROPOSAL
Octavia MaletIndiaAnna Fali UNQUALIFIED
Silvio SlusarskiFranceStephen Shaw RENEWAL
Greenwood BologniaArgentinaStephen Shaw PROPOSAL
Maisha RulapaughAustraliaAsiya Javayant UNQUALIFIED
Mayumi KolmetzArgentinaAmy Elsner PROPOSAL
Deepesh ChuiSpainBernardo Dominic NEGOTIATION
Aika InouyeGermanyAnna Fali UNQUALIFIED
Misaki RoysterRussiaAsiya Javayant NEW
Silvio SlusarskiRussiaElwin Sharvill NEW
Sinclair WaycottRussiaXuxue Feng RENEWAL
Rodrigues CampainGermanyIvan Magalhaes RENEWAL
Octavia MaletFranceXuxue Feng UNQUALIFIED
Smith GlickItalyIvan Magalhaes NEW
Tony FollerArgentinaOnyama Limba NEGOTIATION
Sinclair WaycottRussiaAnna Fali RENEWAL
Ivar PaprockiJapanBernardo Dominic UNQUALIFIED
Aruna FigeroaArgentinaIoni Bowcher RENEWAL
David DarakjyGermanyAnna Fali NEW
Aika InouyeIndiaXuxue Feng QUALIFIED
Kadeem FlosiRussiaIvan Magalhaes RENEWAL
Sinclair WaycottFranceXuxue Feng NEGOTIATION
Clifford RimRussiaIvan Magalhaes NEGOTIATION
Smith GlickSpainElwin Sharvill PROPOSAL
Rodrigues CampainBrazilStephen Shaw PROPOSAL
Tony FollerSpainIvan Magalhaes QUALIFIED
Stacey MacleadIndiaBernardo Dominic NEGOTIATION
Leja CaldareraGermanyElwin Sharvill QUALIFIED
Morrow RutaGermanyXuxue Feng PROPOSAL
Morrow RutaSpainStephen Shaw NEGOTIATION
Deepesh ChuiFranceIoni Bowcher QUALIFIED
Isabel BowleyFranceXuxue Feng QUALIFIED
Munro FerenczRussiaIoni Bowcher NEGOTIATION
Morrow RutaBrazilElwin Sharvill PROPOSAL
Alejandro PerinSpainAmy Elsner NEGOTIATION
Stacey MacleadSpainBernardo Dominic RENEWAL
Julie StensethCanadaBernardo Dominic UNQUALIFIED
David DarakjyItalyIoni Bowcher PROPOSAL
Cody SaylorsFranceAmy Elsner NEW
Salvatore StockhamArgentinaAmy Elsner PROPOSAL
Deepesh ChuiIndiaXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Nicolas IturbideArgentinaAmy Elsner NEGOTIATION
Jeanfrancois VenereFranceAmy Elsner UNQUALIFIED
Sinclair WaycottItalyElwin Sharvill NEW
Aika InouyeFranceAsiya Javayant NEGOTIATION
Arvin AlbaresCanadaIoni Bowcher NEW
Silvio SlusarskiBrazilIoni Bowcher RENEWAL
Cody SaylorsGermanyIoni Bowcher NEGOTIATION
Jennifer AmigonIndiaAsiya Javayant RENEWAL
Stacey MacleadFranceStephen Shaw NEW
Darci PoquetteCanadaIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Chavez BriddickCanada2026-04-24Benton, John B Jr PROPOSAL10Elwin Sharvill
1001Cody SaylorsFrance2026-04-15Morlong Associates UNQUALIFIED97Amy Elsner
1002Jones VocelkaCanada2026-05-05Morlong Associates QUALIFIED54Bernardo Dominic
1003Wickens NestleItaly2026-04-10Buckley Miller Wright PROPOSAL23Ioni Bowcher
1004Kadeem FlosiItaly2026-04-19Chapman, Ross E Esq QUALIFIED0Asiya Javayant
1005Kadeem FlosiBrazil2026-04-27Rousseaux, Michael Esq NEGOTIATION29Amy Elsner
1006Jefferson SchemmerJapan2026-04-18Dorl, James J Esq RENEWAL83Anna Fali
1007Francesco ShinkoAustralia2026-04-28Feltz Printing Service NEGOTIATION75Stephen Shaw
1008Sinclair WaycottSpain2026-04-26Commercial Press QUALIFIED99Xuxue Feng
1009Aditya KuskoFrance2026-04-30Feltz Printing Service NEW87Stephen Shaw
1010Octavia MaletIndia2026-04-14Chanay, Jeffrey A Esq UNQUALIFIED66Asiya Javayant
1011Leja CaldareraGermany2026-04-16Chemel, James L Cpa UNQUALIFIED0Ioni Bowcher
1012Johnson SergiAustralia2026-04-25Buckley Miller Wright PROPOSAL81Asiya Javayant
1013Kadeem FlosiItaly2026-04-13Rousseaux, Michael Esq NEW89Onyama Limba
1014Jones VocelkaGermany2026-04-27Truhlar And Truhlar Attys RENEWAL27Ivan Magalhaes
1015Sinclair WaycottArgentina2026-05-03Truhlar And Truhlar Attys PROPOSAL65Onyama Limba
1016Adams MorascaItaly2026-05-02Truhlar And Truhlar Attys PROPOSAL63Onyama Limba
1017Isabel BowleyRussia2026-04-14Feltz Printing Service RENEWAL93Ivan Magalhaes
1018Clifford RimCanada2026-04-30Feltz Printing Service UNQUALIFIED49Asiya Javayant
1019Rodrigues CampainArgentina2026-04-16Feltz Printing Service RENEWAL97Asiya Javayant
1020Jones VocelkaFrance2026-04-25King, Christopher A Esq QUALIFIED86Stephen Shaw
1021Costa DilliardAustralia2026-04-23Feiner Bros PROPOSAL47Amy Elsner
1022Aika InouyeIndia2026-04-08Commercial Press UNQUALIFIED80Xuxue Feng
1023Chavez BriddickBrazil2026-04-14Morlong Associates QUALIFIED6Anna Fali
1024Izzy GarufiItaly2026-04-20Commercial Press PROPOSAL26Stephen Shaw
1025James ButtUnited Kingdom2026-05-04Morlong Associates UNQUALIFIED81Anna Fali
1026Alejandro PerinIndia2026-04-27Buckley Miller Wright PROPOSAL85Asiya Javayant
1027Adams MorascaGermany2026-04-22Truhlar And Truhlar Attys NEGOTIATION88Ioni Bowcher
1028Murillo MaletCanada2026-04-19Printing Dimensions UNQUALIFIED77Ioni Bowcher
1029Jennifer AmigonArgentina2026-05-02Benton, John B Jr NEGOTIATION77Bernardo Dominic
1030Jones VocelkaItaly2026-04-18Chapman, Ross E Esq UNQUALIFIED28Onyama Limba
1031Adams MorascaBrazil2026-04-06Chemel, James L Cpa NEGOTIATION53Anna Fali
1032Maria MarrierJapan2026-04-13Rangoni Of Florence PROPOSAL1Bernardo Dominic
1033Wickens NestleSpain2026-05-05Feltz Printing Service NEW21Amy Elsner
1034Tony FollerAustralia2026-04-06Feiner Bros PROPOSAL39Elwin Sharvill
1035Antonio CaudyArgentina2026-04-19Truhlar And Truhlar Attys UNQUALIFIED77Ivan Magalhaes
1036Arvin AlbaresFrance2026-04-20Dorl, James J Esq UNQUALIFIED15Asiya Javayant
1037Sinclair WaycottSpain2026-04-29Feltz Printing Service NEGOTIATION48Anna Fali
1038Claire TollnerGermany2026-05-04Rousseaux, Michael Esq PROPOSAL79Ioni Bowcher
1039Maria MarrierBrazil2026-04-17Buckley Miller Wright PROPOSAL17Onyama Limba
1040Faith GillianArgentina2026-04-20Chanay, Jeffrey A Esq PROPOSAL17Onyama Limba
1041Chavez BriddickSpain2026-04-06Morlong Associates QUALIFIED30Anna Fali
1042Isabel BowleyJapan2026-04-07Chapman, Ross E Esq QUALIFIED57Bernardo Dominic
1043Mujtaba NickaRussia2026-04-29Truhlar And Truhlar Attys QUALIFIED77Bernardo Dominic
1044Emily WhobreyItaly2026-04-10Feiner Bros NEGOTIATION45Stephen Shaw
1045Salvatore StockhamRussia2026-04-21Commercial Press QUALIFIED80Anna Fali
1046Mayumi KolmetzArgentina2026-04-25Chemel, James L Cpa QUALIFIED75Asiya Javayant
1047Alejandro PerinItaly2026-04-09Morlong Associates PROPOSAL46Stephen Shaw
1048Maisha RulapaughUnited Kingdom2026-04-19Chemel, James L Cpa NEW12Onyama Limba
1049Izzy GarufiGermany2026-04-10Rangoni Of Florence QUALIFIED32Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Nicolas IturbideBrazilStephen Shaw NEW
Jeanfrancois VenereBrazilStephen Shaw PROPOSAL
Chavez BriddickCanadaOnyama Limba UNQUALIFIED
Arvin AlbaresItalyElwin Sharvill NEGOTIATION
Adams MorascaCanadaElwin Sharvill RENEWAL
Izzy GarufiSpainIoni Bowcher NEW
Salvatore StockhamGermanyAsiya Javayant RENEWAL
Munro FerenczCanadaXuxue Feng QUALIFIED
Mayumi KolmetzCanadaAsiya Javayant NEGOTIATION
Ricardo GauchoAustraliaStephen Shaw UNQUALIFIED
Kaitlin OstroskyGermanyAnna Fali QUALIFIED
David DarakjyItalyAnna Fali NEGOTIATION
Salvatore StockhamAustraliaBernardo Dominic NEGOTIATION
Stacey MacleadCanadaOnyama Limba QUALIFIED
Arvin AlbaresCanadaAsiya Javayant NEW
Wickens NestleItalyOnyama Limba PROPOSAL
Ricardo GauchoUnited KingdomBernardo Dominic NEW
Jeanfrancois VenereFranceOnyama Limba QUALIFIED
Faith GillianSpainAsiya Javayant UNQUALIFIED
Isabel BowleyJapanAnna Fali QUALIFIED
Stacey MacleadFranceIvan Magalhaes NEW
Salvatore StockhamArgentinaXuxue Feng QUALIFIED
Ashley DoeIndiaStephen Shaw QUALIFIED
Adams MorascaGermanyBernardo Dominic RENEWAL
Aditya KuskoRussiaAmy Elsner QUALIFIED
Johnson SergiUnited KingdomAsiya Javayant QUALIFIED
Isabel BowleySpainIvan Magalhaes QUALIFIED
Jefferson SchemmerFranceAsiya Javayant UNQUALIFIED
Jeanfrancois VenereBrazilStephen Shaw PROPOSAL
Cody SaylorsGermanyAsiya Javayant QUALIFIED
Adams MorascaArgentinaAsiya Javayant RENEWAL
Antonio CaudySpainAmy Elsner QUALIFIED
Aditya KuskoFranceAnna Fali RENEWAL
Aika InouyeAustraliaAsiya Javayant UNQUALIFIED
Johnson SergiRussiaAmy Elsner RENEWAL
Faith GillianIndiaIvan Magalhaes NEW
Greenwood BologniaCanadaAnna Fali UNQUALIFIED
Juan WieserBrazilOnyama Limba PROPOSAL
Munro FerenczUnited KingdomBernardo Dominic UNQUALIFIED
Isabel BowleyBrazilElwin Sharvill NEGOTIATION
Greenwood BologniaJapanXuxue Feng UNQUALIFIED
Sinclair WaycottArgentinaXuxue Feng UNQUALIFIED
Darci PoquetteIndiaBernardo Dominic RENEWAL
Jennifer AmigonSpainBernardo Dominic RENEWAL
Kaitlin OstroskyCanadaIvan Magalhaes QUALIFIED
Emily WhobreyAustraliaAsiya Javayant NEGOTIATION
Chavez BriddickArgentinaXuxue Feng QUALIFIED
Francesco ShinkoAustraliaIvan Magalhaes RENEWAL
Jefferson SchemmerSpainAmy Elsner NEGOTIATION
Misaki RoysterAustraliaXuxue Feng QUALIFIED
Frozen Columns
Name
Munro Ferencz
Aruna Figeroa
Chavez Briddick
Cody Saylors
Silvio Slusarski
Misaki Royster
Leja Caldarera
Jefferson Schemmer
Emily Whobrey
Deepesh Chui
Ivar Paprocki
Clifford Rim
Francesco Shinko
Cody Saylors
Misaki Royster
Kadeem Flosi
Rodrigues Campain
Munro Ferencz
Costa Dilliard
Maria Marrier
Maria Marrier
Juan Wieser
Clifford Rim
Leon Oldroyd
Munro Ferencz
Munro Ferencz
Tony Foller
Munro Ferencz
Julie Stenseth
Chavez Briddick
Munro Ferencz
Aditya Kusko
Nicolas Iturbide
Jeanfrancois Venere
Antonio Caudy
Ashley Doe
Aika Inouye
Murillo Malet
Jones Vocelka
Arvin Albares
Morrow Ruta
Kaitlin Ostrosky
Tony Foller
Wickens Nestle
Adams Morasca
Morrow Ruta
Maria Marrier
Wickens Nestle
Jefferson Schemmer
Faith Gillian
IdCountryDate
1000Canada2026-04-14
1001Brazil2026-04-25
1002Germany2026-04-28
1003Spain2026-05-04
1004Spain2026-04-07
1005Germany2026-04-22
1006Italy2026-04-17
1007Brazil2026-04-29
1008France2026-05-05
1009Japan2026-04-30
1010France2026-04-22
1011Italy2026-04-14
1012Canada2026-04-11
1013France2026-04-10
1014Australia2026-05-05
1015Canada2026-05-03
1016Russia2026-04-16
1017Russia2026-04-24
1018United Kingdom2026-04-12
1019Germany2026-04-09
1020Spain2026-04-29
1021Brazil2026-04-16
1022Spain2026-04-17
1023Spain2026-05-04
1024Canada2026-04-06
1025Japan2026-04-19
1026Russia2026-04-06
1027Japan2026-04-17
1028Australia2026-04-30
1029Argentina2026-04-15
1030France2026-04-18
1031India2026-04-13
1032Argentina2026-04-17
1033Spain2026-04-07
1034Spain2026-04-24
1035Japan2026-04-18
1036Brazil2026-04-16
1037Brazil2026-04-27
1038Argentina2026-05-02
1039Brazil2026-04-22
1040Germany2026-04-12
1041Russia2026-04-25
1042India2026-04-27
1043Canada2026-04-18
1044Canada2026-04-21
1045United Kingdom2026-04-24
1046Germany2026-04-23
1047Italy2026-04-11
1048United Kingdom2026-04-07
1049Argentina2026-05-02

On-Demand Data

NameIdCountryDate
Stacey Maclead1000Russia2026-04-14
Munro Ferencz1001Japan2026-04-25
Mujtaba Nicka1002India2026-05-03
Faith Gillian1003Germany2026-04-25
Alejandro Perin1004France2026-04-25
Deepesh Chui1005Russia2026-04-10
Murillo Malet1006Japan2026-04-21
Adams Morasca1007France2026-04-08
Isabel Bowley1008Spain2026-04-28
Clifford Rim1009Russia2026-04-24
Deepesh Chui1010Australia2026-04-26
Octavia Malet1011Argentina2026-04-14
Chavez Briddick1012India2026-04-19
Francesco Shinko1013Australia2026-05-02
Kaitlin Ostrosky1014France2026-04-27
Stacey Maclead1015Italy2026-05-02
Silvio Slusarski1016Russia2026-04-20
Ricardo Gaucho1017Japan2026-04-20
Isabel Bowley1018Germany2026-04-11
Clifford Rim1019Spain2026-04-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Claire TollnerItalyAmy Elsner UNQUALIFIED
Jefferson SchemmerGermanyElwin Sharvill NEW
Kadeem FlosiJapanOnyama Limba NEGOTIATION
Cody SaylorsUnited KingdomIoni Bowcher QUALIFIED
Kaitlin OstroskyBrazilXuxue Feng UNQUALIFIED
Izzy GarufiFranceXuxue Feng NEGOTIATION
Kadeem FlosiJapanIoni Bowcher PROPOSAL
Salvatore StockhamItalyOnyama Limba RENEWAL
David DarakjyJapanIoni Bowcher RENEWAL
Misaki RoysterIndiaXuxue Feng RENEWAL
Chavez BriddickJapanOnyama Limba PROPOSAL
Nicolas IturbideRussiaIoni Bowcher NEW
David DarakjyArgentinaIoni Bowcher RENEWAL
Salvatore StockhamFranceAmy Elsner RENEWAL
Clifford RimArgentinaBernardo Dominic PROPOSAL
Kaitlin OstroskyArgentinaElwin Sharvill RENEWAL
Rodrigues CampainUnited KingdomAnna Fali NEW
Wickens NestleGermanyIvan Magalhaes NEGOTIATION
Wickens NestleBrazilAsiya Javayant RENEWAL
Aruna FigeroaSpainIoni Bowcher PROPOSAL
Salvatore StockhamGermanyAsiya Javayant UNQUALIFIED
Izzy GarufiJapanXuxue Feng UNQUALIFIED
Jeanfrancois VenereGermanyIoni Bowcher UNQUALIFIED
Johnson SergiItalyBernardo Dominic QUALIFIED
Juan WieserIndiaBernardo Dominic PROPOSAL
Arvin AlbaresBrazilOnyama Limba QUALIFIED
Claire TollnerAustraliaXuxue Feng QUALIFIED
Alejandro PerinSpainIoni Bowcher UNQUALIFIED
Emily WhobreyFranceIoni Bowcher QUALIFIED
Claire TollnerJapanOnyama Limba NEW
Antonio CaudyArgentinaAnna Fali NEGOTIATION
Julie StensethArgentinaOnyama Limba UNQUALIFIED
Maria MarrierIndiaAmy Elsner NEGOTIATION
Jennifer AmigonIndiaIvan Magalhaes PROPOSAL
Julie StensethAustraliaOnyama Limba PROPOSAL
Emily WhobreyBrazilAnna Fali UNQUALIFIED
Jennifer AmigonRussiaOnyama Limba RENEWAL
Murillo MaletRussiaXuxue Feng QUALIFIED
Aditya KuskoFranceIvan Magalhaes QUALIFIED
Deepesh ChuiRussiaAmy Elsner PROPOSAL

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