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
Jeanfrancois VenereAustraliaBernardo Dominic UNQUALIFIED
Jennifer AmigonSpainBernardo Dominic UNQUALIFIED
Antonio CaudyRussiaOnyama Limba UNQUALIFIED
Misaki RoysterAustraliaIvan Magalhaes PROPOSAL
Faith GillianUnited KingdomIvan Magalhaes QUALIFIED
Isabel BowleyFranceAmy Elsner QUALIFIED
Tony FollerSpainAmy Elsner RENEWAL
Juan WieserFranceIvan Magalhaes QUALIFIED
Nicolas IturbideAustraliaAmy Elsner UNQUALIFIED
Faith GillianCanadaAsiya Javayant UNQUALIFIED
Johnson SergiSpainAmy Elsner NEW
Jennifer AmigonUnited KingdomOnyama Limba NEW
Morrow RutaFranceAmy Elsner UNQUALIFIED
Nicolas IturbideIndiaAmy Elsner RENEWAL
Antonio CaudyArgentinaAmy Elsner PROPOSAL
Maria MarrierRussiaIoni Bowcher RENEWAL
Greenwood BologniaArgentinaAsiya Javayant RENEWAL
Munro FerenczSpainElwin Sharvill QUALIFIED
Francesco ShinkoIndiaOnyama Limba RENEWAL
Greenwood BologniaArgentinaIoni Bowcher PROPOSAL
Adams MorascaGermanyIvan Magalhaes UNQUALIFIED
Adams MorascaAustraliaAnna Fali UNQUALIFIED
Adams MorascaJapanAsiya Javayant NEW
Munro FerenczIndiaAnna Fali NEGOTIATION
Kaitlin OstroskyRussiaAmy Elsner NEW
Deepesh ChuiArgentinaAnna Fali PROPOSAL
Juan WieserJapanBernardo Dominic UNQUALIFIED
Smith GlickJapanOnyama Limba PROPOSAL
Salvatore StockhamSpainStephen Shaw QUALIFIED
Mujtaba NickaGermanyXuxue Feng QUALIFIED
Julie StensethItalyStephen Shaw QUALIFIED
Aditya KuskoArgentinaElwin Sharvill RENEWAL
Tony FollerUnited KingdomElwin Sharvill NEW
Leon OldroydIndiaAnna Fali QUALIFIED
Emily WhobreyRussiaBernardo Dominic NEW
Leja CaldareraRussiaIoni Bowcher PROPOSAL
Stacey MacleadBrazilBernardo Dominic UNQUALIFIED
Tony FollerUnited KingdomXuxue Feng PROPOSAL
Alejandro PerinFranceAmy Elsner UNQUALIFIED
Salvatore StockhamGermanyIoni Bowcher UNQUALIFIED
Adams MorascaBrazilAsiya Javayant NEGOTIATION
Deepesh ChuiItalyIoni Bowcher QUALIFIED
Francesco ShinkoBrazilBernardo Dominic QUALIFIED
Jefferson SchemmerIndiaIvan Magalhaes QUALIFIED
David DarakjyJapanBernardo Dominic NEGOTIATION
Johnson SergiItalyIvan Magalhaes NEW
Antonio CaudyArgentinaAnna Fali PROPOSAL
Octavia MaletJapanIvan Magalhaes QUALIFIED
Ivar PaprockiItalyElwin Sharvill RENEWAL
Ricardo GauchoItalyIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Greenwood BologniaArgentinaIoni Bowcher NEW
Misaki RoysterUnited KingdomBernardo Dominic NEGOTIATION
David DarakjyCanadaStephen Shaw PROPOSAL
Claire TollnerGermanyAmy Elsner UNQUALIFIED
Emily WhobreyGermanyIvan Magalhaes QUALIFIED
Juan WieserIndiaBernardo Dominic RENEWAL
Francesco ShinkoCanadaAsiya Javayant RENEWAL
Ricardo GauchoUnited KingdomStephen Shaw NEGOTIATION
Antonio CaudyCanadaIoni Bowcher QUALIFIED
Aika InouyeJapanXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jennifer AmigonSpain2026-03-28Chemel, James L Cpa NEGOTIATION90Elwin Sharvill
1001Kadeem FlosiUnited Kingdom2026-04-09Chemel, James L Cpa NEGOTIATION34Amy Elsner
1002Leon OldroydGermany2026-03-25Rousseaux, Michael Esq UNQUALIFIED46Bernardo Dominic
1003Johnson SergiSpain2026-03-30Truhlar And Truhlar Attys PROPOSAL14Stephen Shaw
1004Cody SaylorsGermany2026-04-03Printing Dimensions NEW77Xuxue Feng
1005Adams MorascaArgentina2026-03-22Rangoni Of Florence UNQUALIFIED52Elwin Sharvill
1006Arvin AlbaresItaly2026-04-08Truhlar And Truhlar Attys RENEWAL82Onyama Limba
1007Munro FerenczBrazil2026-03-25Chanay, Jeffrey A Esq PROPOSAL71Anna Fali
1008Ivar PaprockiBrazil2026-03-29Rangoni Of Florence RENEWAL39Xuxue Feng
1009Murillo MaletFrance2026-03-30Truhlar And Truhlar Attys UNQUALIFIED43Bernardo Dominic
1010Salvatore StockhamCanada2026-04-06Buckley Miller Wright NEGOTIATION50Anna Fali
1011Ivar PaprockiUnited Kingdom2026-03-27Truhlar And Truhlar Attys NEW7Ioni Bowcher
1012Chavez BriddickItaly2026-03-21Rangoni Of Florence RENEWAL78Bernardo Dominic
1013Chavez BriddickItaly2026-04-04King, Christopher A Esq RENEWAL6Elwin Sharvill
1014Jones VocelkaItaly2026-03-21Morlong Associates RENEWAL94Amy Elsner
1015Leja CaldareraUnited Kingdom2026-03-31Feltz Printing Service PROPOSAL96Anna Fali
1016Silvio SlusarskiUnited Kingdom2026-03-23Benton, John B Jr NEGOTIATION57Anna Fali
1017Deepesh ChuiIndia2026-04-12Rousseaux, Michael Esq RENEWAL63Xuxue Feng
1018Faith GillianCanada2026-04-01Dorl, James J Esq UNQUALIFIED28Ioni Bowcher
1019Arvin AlbaresIndia2026-04-03Chapman, Ross E Esq NEGOTIATION75Onyama Limba
1020Julie StensethUnited Kingdom2026-04-11Buckley Miller Wright PROPOSAL94Stephen Shaw
1021Silvio SlusarskiArgentina2026-04-06Buckley Miller Wright QUALIFIED23Amy Elsner
1022Maria MarrierArgentina2026-04-13Feltz Printing Service NEW2Ioni Bowcher
1023Jennifer AmigonItaly2026-03-29Printing Dimensions RENEWAL39Xuxue Feng
1024Ashley DoeGermany2026-04-13Rousseaux, Michael Esq QUALIFIED29Onyama Limba
1025Antonio CaudySpain2026-04-06Chanay, Jeffrey A Esq QUALIFIED52Anna Fali
1026James ButtSpain2026-03-27Chapman, Ross E Esq RENEWAL13Asiya Javayant
1027Silvio SlusarskiJapan2026-03-20Printing Dimensions NEW30Anna Fali
1028Jennifer AmigonUnited Kingdom2026-04-18Chapman, Ross E Esq PROPOSAL41Anna Fali
1029Greenwood BologniaJapan2026-04-13Chemel, James L Cpa UNQUALIFIED0Xuxue Feng
1030Nicolas IturbideAustralia2026-04-14Morlong Associates RENEWAL5Amy Elsner
1031Smith GlickIndia2026-04-12King, Christopher A Esq QUALIFIED14Amy Elsner
1032Maisha RulapaughAustralia2026-03-24Benton, John B Jr NEW7Amy Elsner
1033Stacey MacleadFrance2026-04-18Rangoni Of Florence UNQUALIFIED93Bernardo Dominic
1034Leon OldroydSpain2026-04-15Printing Dimensions QUALIFIED63Ivan Magalhaes
1035Darci PoquetteSpain2026-04-13Truhlar And Truhlar Attys QUALIFIED76Elwin Sharvill
1036Izzy GarufiBrazil2026-04-08Chanay, Jeffrey A Esq QUALIFIED42Amy Elsner
1037Chavez BriddickGermany2026-04-11Rangoni Of Florence PROPOSAL44Anna Fali
1038Tony FollerArgentina2026-03-31Buckley Miller Wright QUALIFIED68Asiya Javayant
1039Claire TollnerRussia2026-03-28Rangoni Of Florence QUALIFIED22Onyama Limba
1040Rodrigues CampainSpain2026-04-07Rangoni Of Florence PROPOSAL78Bernardo Dominic
1041Julie StensethItaly2026-04-03Feltz Printing Service NEGOTIATION27Onyama Limba
1042Aika InouyeItaly2026-03-22Commercial Press PROPOSAL51Asiya Javayant
1043Wickens NestleJapan2026-04-10Feltz Printing Service NEW14Anna Fali
1044Maisha RulapaughArgentina2026-03-31Printing Dimensions NEGOTIATION54Bernardo Dominic
1045Jeanfrancois VenereFrance2026-03-23Feiner Bros PROPOSAL15Onyama Limba
1046Morrow RutaAustralia2026-04-05Chapman, Ross E Esq PROPOSAL19Ivan Magalhaes
1047Alejandro PerinCanada2026-04-10Feiner Bros UNQUALIFIED18Asiya Javayant
1048Stacey MacleadAustralia2026-04-05Dorl, James J Esq RENEWAL94Amy Elsner
1049Octavia MaletRussia2026-04-01Truhlar And Truhlar Attys NEW51Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Leon OldroydRussiaXuxue Feng QUALIFIED
Jones VocelkaBrazilElwin Sharvill RENEWAL
James ButtFranceStephen Shaw PROPOSAL
Julie StensethArgentinaStephen Shaw NEGOTIATION
Mayumi KolmetzUnited KingdomAmy Elsner PROPOSAL
Silvio SlusarskiIndiaElwin Sharvill QUALIFIED
Claire TollnerRussiaAnna Fali NEW
Arvin AlbaresIndiaAsiya Javayant NEW
Johnson SergiItalyXuxue Feng NEW
Wickens NestleItalyIvan Magalhaes QUALIFIED
Silvio SlusarskiCanadaAnna Fali RENEWAL
Rodrigues CampainFranceElwin Sharvill PROPOSAL
David DarakjyArgentinaAmy Elsner PROPOSAL
Mujtaba NickaArgentinaIoni Bowcher NEW
Isabel BowleyIndiaStephen Shaw QUALIFIED
Adams MorascaIndiaStephen Shaw RENEWAL
Greenwood BologniaSpainAmy Elsner NEGOTIATION
Ashley DoeRussiaStephen Shaw RENEWAL
Rodrigues CampainRussiaStephen Shaw UNQUALIFIED
Faith GillianSpainStephen Shaw RENEWAL
Emily WhobreyBrazilIoni Bowcher NEW
Francesco ShinkoArgentinaXuxue Feng RENEWAL
Tony FollerJapanXuxue Feng UNQUALIFIED
Maria MarrierJapanBernardo Dominic PROPOSAL
Sinclair WaycottUnited KingdomAnna Fali RENEWAL
Maria MarrierCanadaAnna Fali QUALIFIED
Alejandro PerinArgentinaAsiya Javayant UNQUALIFIED
Julie StensethRussiaXuxue Feng PROPOSAL
Kadeem FlosiSpainAsiya Javayant UNQUALIFIED
Jeanfrancois VenereAustraliaElwin Sharvill PROPOSAL
Deepesh ChuiIndiaElwin Sharvill PROPOSAL
Aditya KuskoRussiaAsiya Javayant NEGOTIATION
Adams MorascaGermanyBernardo Dominic NEGOTIATION
Johnson SergiIndiaIvan Magalhaes QUALIFIED
Aika InouyeBrazilIvan Magalhaes RENEWAL
Costa DilliardArgentinaXuxue Feng QUALIFIED
Jeanfrancois VenereFranceAmy Elsner NEW
Costa DilliardIndiaBernardo Dominic NEGOTIATION
Costa DilliardCanadaXuxue Feng NEW
Salvatore StockhamSpainElwin Sharvill NEW
Munro FerenczArgentinaElwin Sharvill NEGOTIATION
Morrow RutaJapanBernardo Dominic UNQUALIFIED
Kaitlin OstroskyRussiaIvan Magalhaes UNQUALIFIED
Morrow RutaFranceIoni Bowcher UNQUALIFIED
Nicolas IturbideBrazilIvan Magalhaes RENEWAL
Deepesh ChuiUnited KingdomAmy Elsner UNQUALIFIED
Murillo MaletRussiaOnyama Limba RENEWAL
Stacey MacleadSpainAmy Elsner PROPOSAL
Arvin AlbaresFranceXuxue Feng NEW
Leja CaldareraBrazilAmy Elsner NEW
Frozen Columns
Name
Salvatore Stockham
Tony Foller
Nicolas Iturbide
Chavez Briddick
Jones Vocelka
Cody Saylors
Jefferson Schemmer
Smith Glick
Adams Morasca
Mayumi Kolmetz
Sinclair Waycott
Murillo Malet
Izzy Garufi
Maisha Rulapaugh
Johnson Sergi
Morrow Ruta
Mayumi Kolmetz
Aruna Figeroa
Munro Ferencz
Sinclair Waycott
Claire Tollner
Mujtaba Nicka
Alejandro Perin
Mayumi Kolmetz
Wickens Nestle
Jennifer Amigon
Costa Dilliard
Aika Inouye
Johnson Sergi
Misaki Royster
Adams Morasca
Juan Wieser
Mujtaba Nicka
Morrow Ruta
Tony Foller
Salvatore Stockham
Octavia Malet
Jennifer Amigon
Kadeem Flosi
Maisha Rulapaugh
Jones Vocelka
Deepesh Chui
Leja Caldarera
Sinclair Waycott
Adams Morasca
Maria Marrier
Alejandro Perin
Stacey Maclead
Kadeem Flosi
Nicolas Iturbide
IdCountryDate
1000Russia2026-03-26
1001Australia2026-04-02
1002Argentina2026-03-26
1003United Kingdom2026-03-20
1004Australia2026-04-14
1005Argentina2026-04-16
1006Australia2026-04-05
1007Canada2026-04-16
1008Brazil2026-03-21
1009Argentina2026-03-29
1010Brazil2026-04-09
1011Argentina2026-03-29
1012Germany2026-03-27
1013Brazil2026-04-14
1014Australia2026-04-16
1015Argentina2026-04-12
1016Russia2026-03-28
1017Brazil2026-03-23
1018United Kingdom2026-03-23
1019United Kingdom2026-04-02
1020Canada2026-04-07
1021Spain2026-04-13
1022Australia2026-03-26
1023Brazil2026-03-28
1024France2026-03-30
1025Italy2026-03-28
1026Russia2026-04-13
1027Spain2026-04-17
1028Australia2026-03-28
1029India2026-03-31
1030France2026-03-23
1031Italy2026-03-21
1032Canada2026-03-30
1033Germany2026-04-14
1034United Kingdom2026-03-31
1035Canada2026-04-12
1036Russia2026-04-18
1037Japan2026-03-21
1038India2026-04-07
1039Spain2026-04-13
1040Australia2026-04-09
1041Italy2026-03-23
1042Japan2026-04-09
1043France2026-04-15
1044Germany2026-04-05
1045Spain2026-04-03
1046Australia2026-04-08
1047France2026-04-02
1048Japan2026-04-06
1049Italy2026-04-09

On-Demand Data

NameIdCountryDate
Aditya Kusko1000India2026-03-31
James Butt1001Brazil2026-03-28
Alejandro Perin1002United Kingdom2026-03-27
David Darakjy1003Brazil2026-04-09
Julie Stenseth1004Japan2026-04-17
Kaitlin Ostrosky1005Spain2026-04-11
Misaki Royster1006India2026-03-20
Kaitlin Ostrosky1007Australia2026-03-27
Smith Glick1008Australia2026-04-04
Ricardo Gaucho1009Brazil2026-03-25
Smith Glick1010Japan2026-03-22
Mujtaba Nicka1011Italy2026-04-12
Mayumi Kolmetz1012Spain2026-04-06
Salvatore Stockham1013Australia2026-04-14
Salvatore Stockham1014Argentina2026-03-25
Aruna Figeroa1015Russia2026-03-20
Aditya Kusko1016Japan2026-04-09
Arvin Albares1017France2026-04-13
Wickens Nestle1018Russia2026-03-23
Jefferson Schemmer1019Spain2026-04-07
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan WieserAustraliaXuxue Feng UNQUALIFIED
Jones VocelkaRussiaAmy Elsner RENEWAL
Costa DilliardRussiaXuxue Feng NEW
Jennifer AmigonSpainStephen Shaw UNQUALIFIED
Arvin AlbaresUnited KingdomBernardo Dominic QUALIFIED
Silvio SlusarskiCanadaAsiya Javayant UNQUALIFIED
Cody SaylorsIndiaXuxue Feng QUALIFIED
Sinclair WaycottBrazilAnna Fali NEGOTIATION
Rodrigues CampainGermanyStephen Shaw QUALIFIED
Clifford RimIndiaOnyama Limba UNQUALIFIED
Stacey MacleadSpainAsiya Javayant QUALIFIED
Morrow RutaUnited KingdomStephen Shaw UNQUALIFIED
Murillo MaletJapanIvan Magalhaes NEGOTIATION
Wickens NestleAustraliaAmy Elsner UNQUALIFIED
Darci PoquetteJapanAsiya Javayant NEGOTIATION
Mayumi KolmetzBrazilStephen Shaw NEW
Jones VocelkaGermanyIoni Bowcher PROPOSAL
Maria MarrierCanadaAsiya Javayant NEW
Leja CaldareraArgentinaAsiya Javayant QUALIFIED
Alejandro PerinGermanyStephen Shaw NEGOTIATION
Cody SaylorsAustraliaAsiya Javayant QUALIFIED
Chavez BriddickItalyBernardo Dominic NEGOTIATION
Salvatore StockhamCanadaStephen Shaw NEGOTIATION
Aika InouyeCanadaStephen Shaw PROPOSAL
David DarakjyCanadaIvan Magalhaes RENEWAL
Greenwood BologniaItalyIvan Magalhaes NEW
Tony FollerArgentinaStephen Shaw NEW
Jefferson SchemmerRussiaAnna Fali RENEWAL
Arvin AlbaresUnited KingdomAnna Fali RENEWAL
Johnson SergiArgentinaIoni Bowcher QUALIFIED
Juan WieserArgentinaBernardo Dominic QUALIFIED
Claire TollnerJapanIvan Magalhaes NEW
Murillo MaletRussiaBernardo Dominic PROPOSAL
Mujtaba NickaArgentinaStephen Shaw QUALIFIED
Stacey MacleadJapanElwin Sharvill NEW
Faith GillianJapanAmy Elsner QUALIFIED
Silvio SlusarskiJapanXuxue Feng QUALIFIED
Ricardo GauchoSpainAnna Fali NEGOTIATION
Murillo MaletJapanBernardo Dominic RENEWAL
Misaki RoysterFranceStephen Shaw 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>