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
Maria MarrierFranceBernardo Dominic NEGOTIATION
Darci PoquetteItalyAsiya Javayant QUALIFIED
Rodrigues CampainGermanyAsiya Javayant UNQUALIFIED
Cody SaylorsRussiaStephen Shaw QUALIFIED
Costa DilliardSpainElwin Sharvill PROPOSAL
Murillo MaletBrazilElwin Sharvill PROPOSAL
Ricardo GauchoIndiaElwin Sharvill RENEWAL
Arvin AlbaresCanadaStephen Shaw NEW
Octavia MaletAustraliaXuxue Feng RENEWAL
Octavia MaletCanadaOnyama Limba QUALIFIED
Aika InouyeAustraliaElwin Sharvill NEGOTIATION
Mayumi KolmetzAustraliaIvan Magalhaes RENEWAL
Greenwood BologniaRussiaAsiya Javayant PROPOSAL
Claire TollnerBrazilOnyama Limba UNQUALIFIED
Alejandro PerinAustraliaElwin Sharvill UNQUALIFIED
Rodrigues CampainBrazilElwin Sharvill NEW
Adams MorascaRussiaXuxue Feng RENEWAL
Mujtaba NickaAustraliaXuxue Feng UNQUALIFIED
Jefferson SchemmerItalyXuxue Feng UNQUALIFIED
Leon OldroydCanadaIoni Bowcher PROPOSAL
Aika InouyeRussiaElwin Sharvill NEW
Chavez BriddickUnited KingdomOnyama Limba RENEWAL
Johnson SergiIndiaIvan Magalhaes NEW
Faith GillianAustraliaOnyama Limba NEW
Arvin AlbaresCanadaAmy Elsner NEW
Aruna FigeroaArgentinaElwin Sharvill NEW
James ButtBrazilStephen Shaw QUALIFIED
Rodrigues CampainCanadaIoni Bowcher RENEWAL
Ashley DoeFranceAsiya Javayant PROPOSAL
Munro FerenczAustraliaElwin Sharvill QUALIFIED
Stacey MacleadJapanAnna Fali NEW
Misaki RoysterAustraliaIvan Magalhaes RENEWAL
Leon OldroydBrazilAsiya Javayant NEW
Ashley DoeIndiaOnyama Limba NEGOTIATION
Smith GlickUnited KingdomElwin Sharvill QUALIFIED
Faith GillianUnited KingdomElwin Sharvill NEGOTIATION
Antonio CaudyIndiaAsiya Javayant PROPOSAL
Ivar PaprockiAustraliaAsiya Javayant PROPOSAL
Ricardo GauchoJapanIvan Magalhaes PROPOSAL
Ricardo GauchoItalyIvan Magalhaes QUALIFIED
Munro FerenczAustraliaXuxue Feng PROPOSAL
Sinclair WaycottIndiaIvan Magalhaes NEGOTIATION
Mujtaba NickaAustraliaOnyama Limba RENEWAL
Nicolas IturbideBrazilStephen Shaw NEGOTIATION
Jefferson SchemmerCanadaIvan Magalhaes RENEWAL
Tony FollerItalyXuxue Feng RENEWAL
Emily WhobreyAustraliaIoni Bowcher PROPOSAL
Mayumi KolmetzUnited KingdomAmy Elsner QUALIFIED
Chavez BriddickFranceElwin Sharvill PROPOSAL
Munro FerenczJapanAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Darci PoquetteBrazilBernardo Dominic NEW
Nicolas IturbideBrazilBernardo Dominic RENEWAL
Mayumi KolmetzSpainIoni Bowcher QUALIFIED
Munro FerenczUnited KingdomStephen Shaw NEW
Morrow RutaItalyOnyama Limba QUALIFIED
Arvin AlbaresBrazilOnyama Limba NEGOTIATION
Aditya KuskoAustraliaAnna Fali PROPOSAL
Misaki RoysterAustraliaBernardo Dominic NEGOTIATION
Aditya KuskoRussiaElwin Sharvill QUALIFIED
Greenwood BologniaIndiaIvan Magalhaes NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aruna FigeroaRussia2026-05-03Chanay, Jeffrey A Esq QUALIFIED99Ioni Bowcher
1001Alejandro PerinItaly2026-04-15Chemel, James L Cpa QUALIFIED69Amy Elsner
1002Octavia MaletGermany2026-04-20Feltz Printing Service PROPOSAL5Bernardo Dominic
1003Leon OldroydUnited Kingdom2026-04-23Rousseaux, Michael Esq QUALIFIED55Stephen Shaw
1004Stacey MacleadBrazil2026-05-01Benton, John B Jr NEGOTIATION50Anna Fali
1005Mujtaba NickaJapan2026-04-19Printing Dimensions UNQUALIFIED77Ivan Magalhaes
1006Kaitlin OstroskyArgentina2026-05-10Commercial Press NEW75Ivan Magalhaes
1007Murillo MaletBrazil2026-04-14Printing Dimensions UNQUALIFIED90Stephen Shaw
1008Jefferson SchemmerArgentina2026-04-22Feltz Printing Service PROPOSAL57Anna Fali
1009Ashley DoeRussia2026-04-23Feltz Printing Service PROPOSAL69Stephen Shaw
1010Johnson SergiIndia2026-05-04Truhlar And Truhlar Attys RENEWAL52Bernardo Dominic
1011Kaitlin OstroskyItaly2026-05-07Benton, John B Jr NEGOTIATION61Stephen Shaw
1012Sinclair WaycottGermany2026-04-20Rousseaux, Michael Esq NEW41Elwin Sharvill
1013Ashley DoeArgentina2026-04-22Dorl, James J Esq NEGOTIATION13Ioni Bowcher
1014Tony FollerFrance2026-04-17Feltz Printing Service NEW3Ioni Bowcher
1015Mayumi KolmetzAustralia2026-05-08Buckley Miller Wright NEW49Elwin Sharvill
1016Munro FerenczArgentina2026-05-02Feltz Printing Service UNQUALIFIED62Elwin Sharvill
1017Chavez BriddickArgentina2026-04-17Dorl, James J Esq NEGOTIATION83Asiya Javayant
1018Jefferson SchemmerJapan2026-04-30Buckley Miller Wright PROPOSAL32Amy Elsner
1019Ivar PaprockiSpain2026-05-07Feltz Printing Service UNQUALIFIED57Anna Fali
1020Darci PoquetteCanada2026-04-30Chanay, Jeffrey A Esq RENEWAL7Stephen Shaw
1021Jefferson SchemmerCanada2026-04-23Morlong Associates NEGOTIATION32Amy Elsner
1022Antonio CaudyItaly2026-05-04Chanay, Jeffrey A Esq UNQUALIFIED71Asiya Javayant
1023Stacey MacleadFrance2026-04-30Rangoni Of Florence QUALIFIED8Anna Fali
1024Kadeem FlosiFrance2026-04-14Dorl, James J Esq QUALIFIED69Ioni Bowcher
1025David DarakjyBrazil2026-04-30Chanay, Jeffrey A Esq UNQUALIFIED83Ioni Bowcher
1026Aditya KuskoJapan2026-05-10Dorl, James J Esq UNQUALIFIED33Amy Elsner
1027Ricardo GauchoBrazil2026-04-17Rousseaux, Michael Esq PROPOSAL41Anna Fali
1028Juan WieserIndia2026-05-03Benton, John B Jr PROPOSAL21Bernardo Dominic
1029Johnson SergiAustralia2026-04-27Dorl, James J Esq UNQUALIFIED29Anna Fali
1030Rodrigues CampainAustralia2026-04-29Rangoni Of Florence PROPOSAL42Ioni Bowcher
1031Costa DilliardFrance2026-04-11Feltz Printing Service UNQUALIFIED90Ivan Magalhaes
1032Johnson SergiRussia2026-04-25Chanay, Jeffrey A Esq QUALIFIED23Xuxue Feng
1033Morrow RutaBrazil2026-05-10Truhlar And Truhlar Attys NEW13Elwin Sharvill
1034Stacey MacleadAustralia2026-05-02Rangoni Of Florence UNQUALIFIED55Bernardo Dominic
1035Ricardo GauchoCanada2026-04-12Feltz Printing Service QUALIFIED91Asiya Javayant
1036Wickens NestleSpain2026-04-30Rousseaux, Michael Esq NEW22Stephen Shaw
1037Mujtaba NickaRussia2026-04-25Truhlar And Truhlar Attys PROPOSAL51Stephen Shaw
1038Antonio CaudyFrance2026-04-22Morlong Associates RENEWAL63Anna Fali
1039Julie StensethCanada2026-04-27Morlong Associates QUALIFIED63Stephen Shaw
1040Kaitlin OstroskyUnited Kingdom2026-04-23Morlong Associates NEW59Onyama Limba
1041Jones VocelkaArgentina2026-05-10Chanay, Jeffrey A Esq RENEWAL5Stephen Shaw
1042Darci PoquetteArgentina2026-04-24Chemel, James L Cpa PROPOSAL66Xuxue Feng
1043Silvio SlusarskiFrance2026-04-18Chanay, Jeffrey A Esq NEGOTIATION81Ivan Magalhaes
1044Rodrigues CampainSpain2026-04-17Truhlar And Truhlar Attys UNQUALIFIED75Stephen Shaw
1045Alejandro PerinBrazil2026-05-06Rousseaux, Michael Esq PROPOSAL89Anna Fali
1046Claire TollnerIndia2026-04-16Printing Dimensions RENEWAL19Onyama Limba
1047Alejandro PerinIndia2026-04-24Feiner Bros NEW32Anna Fali
1048Misaki RoysterUnited Kingdom2026-04-30Chemel, James L Cpa NEW20Stephen Shaw
1049Jennifer AmigonJapan2026-05-04King, Christopher A Esq QUALIFIED41Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Alejandro PerinUnited KingdomOnyama Limba PROPOSAL
Aika InouyeSpainBernardo Dominic NEW
James ButtGermanyIvan Magalhaes RENEWAL
Arvin AlbaresRussiaAmy Elsner NEW
Darci PoquetteGermanyElwin Sharvill NEW
Stacey MacleadItalyAnna Fali RENEWAL
Misaki RoysterJapanIvan Magalhaes PROPOSAL
Jeanfrancois VenereBrazilXuxue Feng RENEWAL
Izzy GarufiGermanyXuxue Feng PROPOSAL
Stacey MacleadBrazilElwin Sharvill NEW
Tony FollerItalyIoni Bowcher PROPOSAL
Darci PoquetteBrazilAnna Fali NEGOTIATION
Juan WieserFranceAsiya Javayant PROPOSAL
Aruna FigeroaIndiaAnna Fali QUALIFIED
Deepesh ChuiAustraliaIvan Magalhaes NEW
Clifford RimCanadaIoni Bowcher RENEWAL
Ricardo GauchoCanadaAmy Elsner PROPOSAL
Murillo MaletArgentinaStephen Shaw PROPOSAL
Deepesh ChuiRussiaXuxue Feng UNQUALIFIED
Isabel BowleyBrazilOnyama Limba RENEWAL
Kaitlin OstroskyRussiaElwin Sharvill PROPOSAL
James ButtSpainIvan Magalhaes RENEWAL
Jeanfrancois VenereRussiaAmy Elsner PROPOSAL
Smith GlickRussiaXuxue Feng UNQUALIFIED
Chavez BriddickAustraliaBernardo Dominic QUALIFIED
Ashley DoeGermanyAsiya Javayant RENEWAL
Maisha RulapaughGermanyXuxue Feng RENEWAL
Leon OldroydBrazilAmy Elsner UNQUALIFIED
Francesco ShinkoJapanIoni Bowcher NEW
Misaki RoysterJapanElwin Sharvill UNQUALIFIED
David DarakjyRussiaIoni Bowcher QUALIFIED
Leon OldroydFranceStephen Shaw NEGOTIATION
Morrow RutaIndiaBernardo Dominic UNQUALIFIED
Munro FerenczAustraliaElwin Sharvill PROPOSAL
Antonio CaudyItalyElwin Sharvill UNQUALIFIED
Francesco ShinkoRussiaIvan Magalhaes QUALIFIED
Antonio CaudyCanadaXuxue Feng UNQUALIFIED
Greenwood BologniaUnited KingdomXuxue Feng QUALIFIED
Julie StensethItalyStephen Shaw RENEWAL
Emily WhobreyAustraliaStephen Shaw UNQUALIFIED
Costa DilliardCanadaBernardo Dominic RENEWAL
Misaki RoysterRussiaXuxue Feng UNQUALIFIED
Morrow RutaAustraliaElwin Sharvill QUALIFIED
Francesco ShinkoFranceBernardo Dominic UNQUALIFIED
Jones VocelkaArgentinaStephen Shaw NEW
Claire TollnerFranceIoni Bowcher RENEWAL
Izzy GarufiItalyAsiya Javayant NEGOTIATION
Costa DilliardArgentinaAmy Elsner NEGOTIATION
Maisha RulapaughFranceAmy Elsner QUALIFIED
Emily WhobreyAustraliaAmy Elsner RENEWAL
Frozen Columns
Name
Darci Poquette
Claire Tollner
David Darakjy
Mayumi Kolmetz
Misaki Royster
Julie Stenseth
Darci Poquette
Jones Vocelka
Maisha Rulapaugh
Ricardo Gaucho
Salvatore Stockham
Jennifer Amigon
Aruna Figeroa
Maisha Rulapaugh
Faith Gillian
Munro Ferencz
Alejandro Perin
Aika Inouye
Kaitlin Ostrosky
Julie Stenseth
Emily Whobrey
Johnson Sergi
Jefferson Schemmer
Juan Wieser
Kaitlin Ostrosky
Faith Gillian
Antonio Caudy
Rodrigues Campain
Isabel Bowley
Jones Vocelka
Rodrigues Campain
Jones Vocelka
Tony Foller
David Darakjy
Faith Gillian
Morrow Ruta
Adams Morasca
Aruna Figeroa
Salvatore Stockham
Antonio Caudy
Darci Poquette
Morrow Ruta
Julie Stenseth
Jefferson Schemmer
Deepesh Chui
Mayumi Kolmetz
James Butt
Sinclair Waycott
Kadeem Flosi
Arvin Albares
IdCountryDate
1000Japan2026-04-17
1001Japan2026-05-05
1002Russia2026-04-14
1003India2026-05-07
1004France2026-05-03
1005United Kingdom2026-05-08
1006Brazil2026-05-02
1007India2026-04-22
1008France2026-04-17
1009Australia2026-05-07
1010United Kingdom2026-04-24
1011Australia2026-04-24
1012Russia2026-04-20
1013Argentina2026-04-22
1014Germany2026-04-19
1015Argentina2026-04-18
1016United Kingdom2026-04-18
1017Germany2026-05-09
1018Germany2026-04-24
1019India2026-05-10
1020India2026-04-12
1021Italy2026-04-24
1022Brazil2026-05-01
1023Germany2026-04-17
1024Germany2026-05-10
1025Japan2026-04-16
1026India2026-04-30
1027Germany2026-04-26
1028India2026-04-17
1029Argentina2026-05-09
1030United Kingdom2026-05-07
1031Canada2026-04-25
1032Japan2026-04-30
1033France2026-04-12
1034India2026-04-30
1035Brazil2026-05-01
1036Canada2026-04-20
1037Argentina2026-04-23
1038India2026-04-27
1039Brazil2026-04-25
1040United Kingdom2026-04-28
1041India2026-05-08
1042Argentina2026-04-29
1043Russia2026-04-24
1044United Kingdom2026-05-05
1045Spain2026-04-28
1046India2026-04-12
1047India2026-04-27
1048India2026-04-24
1049United Kingdom2026-05-10

On-Demand Data

NameIdCountryDate
Munro Ferencz1000Italy2026-04-28
Julie Stenseth1001Canada2026-04-29
Wickens Nestle1002Italy2026-05-01
Ricardo Gaucho1003Italy2026-04-29
Antonio Caudy1004Argentina2026-04-28
Aditya Kusko1005Australia2026-05-01
Smith Glick1006Australia2026-04-26
Juan Wieser1007Canada2026-04-12
Ivar Paprocki1008Japan2026-05-05
Ivar Paprocki1009Russia2026-05-08
Aditya Kusko1010India2026-04-29
Sinclair Waycott1011Brazil2026-04-15
Julie Stenseth1012Argentina2026-04-26
Adams Morasca1013Australia2026-05-01
Julie Stenseth1014United Kingdom2026-04-13
Leja Caldarera1015Argentina2026-05-06
Chavez Briddick1016France2026-04-12
Ricardo Gaucho1017France2026-05-08
Aika Inouye1018Brazil2026-05-09
Morrow Ruta1019Spain2026-05-08
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Costa DilliardCanadaIvan Magalhaes QUALIFIED
Octavia MaletAustraliaXuxue Feng PROPOSAL
Kadeem FlosiBrazilAnna Fali PROPOSAL
Alejandro PerinItalyElwin Sharvill UNQUALIFIED
Maria MarrierCanadaElwin Sharvill NEGOTIATION
Isabel BowleyRussiaAnna Fali PROPOSAL
Tony FollerAustraliaAsiya Javayant NEW
Clifford RimArgentinaElwin Sharvill NEGOTIATION
James ButtRussiaIoni Bowcher RENEWAL
Octavia MaletGermanyXuxue Feng QUALIFIED
Francesco ShinkoUnited KingdomStephen Shaw PROPOSAL
Clifford RimRussiaXuxue Feng QUALIFIED
Darci PoquetteJapanElwin Sharvill PROPOSAL
Jeanfrancois VenereArgentinaAsiya Javayant QUALIFIED
Leja CaldareraCanadaAnna Fali NEGOTIATION
Arvin AlbaresJapanAmy Elsner RENEWAL
Arvin AlbaresCanadaBernardo Dominic QUALIFIED
Claire TollnerRussiaStephen Shaw UNQUALIFIED
Faith GillianArgentinaXuxue Feng RENEWAL
Claire TollnerIndiaIoni Bowcher NEGOTIATION
Mujtaba NickaRussiaXuxue Feng NEGOTIATION
Kadeem FlosiBrazilXuxue Feng NEGOTIATION
Jefferson SchemmerRussiaBernardo Dominic PROPOSAL
Faith GillianUnited KingdomAmy Elsner RENEWAL
Octavia MaletSpainAsiya Javayant QUALIFIED
Jones VocelkaItalyBernardo Dominic NEW
Kadeem FlosiBrazilBernardo Dominic NEW
Darci PoquetteCanadaElwin Sharvill NEGOTIATION
James ButtArgentinaStephen Shaw RENEWAL
Ivar PaprockiAustraliaStephen Shaw QUALIFIED
Darci PoquetteItalyBernardo Dominic UNQUALIFIED
Jennifer AmigonAustraliaAmy Elsner PROPOSAL
Nicolas IturbideUnited KingdomAmy Elsner QUALIFIED
Faith GillianFranceIoni Bowcher RENEWAL
Jennifer AmigonCanadaIvan Magalhaes RENEWAL
Ricardo GauchoUnited KingdomIvan Magalhaes NEGOTIATION
Mayumi KolmetzGermanyBernardo Dominic UNQUALIFIED
Cody SaylorsArgentinaStephen Shaw RENEWAL
Claire TollnerUnited KingdomOnyama Limba UNQUALIFIED
Costa DilliardSpainXuxue Feng UNQUALIFIED

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