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
Alejandro PerinSpainAmy Elsner QUALIFIED
Tony FollerSpainIvan Magalhaes NEGOTIATION
Juan WieserFranceStephen Shaw PROPOSAL
Tony FollerAustraliaIoni Bowcher NEGOTIATION
Clifford RimAustraliaAsiya Javayant NEW
Alejandro PerinArgentinaBernardo Dominic NEGOTIATION
Deepesh ChuiUnited KingdomAnna Fali RENEWAL
Chavez BriddickRussiaElwin Sharvill NEW
Mayumi KolmetzSpainBernardo Dominic NEGOTIATION
Munro FerenczArgentinaIvan Magalhaes RENEWAL
Darci PoquetteUnited KingdomAmy Elsner NEGOTIATION
Faith GillianSpainElwin Sharvill UNQUALIFIED
Maria MarrierFranceAsiya Javayant RENEWAL
Munro FerenczJapanAnna Fali QUALIFIED
Leon OldroydIndiaBernardo Dominic PROPOSAL
Emily WhobreyAustraliaXuxue Feng NEW
Jennifer AmigonArgentinaBernardo Dominic RENEWAL
Adams MorascaRussiaOnyama Limba NEGOTIATION
Johnson SergiSpainElwin Sharvill UNQUALIFIED
Jennifer AmigonCanadaIoni Bowcher NEGOTIATION
Julie StensethUnited KingdomBernardo Dominic PROPOSAL
Johnson SergiAustraliaXuxue Feng UNQUALIFIED
Salvatore StockhamGermanyElwin Sharvill NEW
Izzy GarufiAustraliaIvan Magalhaes UNQUALIFIED
Murillo MaletArgentinaBernardo Dominic UNQUALIFIED
Tony FollerIndiaAnna Fali NEW
Leja CaldareraGermanyOnyama Limba QUALIFIED
Deepesh ChuiArgentinaIoni Bowcher QUALIFIED
Aika InouyeBrazilElwin Sharvill NEGOTIATION
Leon OldroydCanadaXuxue Feng UNQUALIFIED
Alejandro PerinArgentinaStephen Shaw RENEWAL
Kadeem FlosiRussiaBernardo Dominic QUALIFIED
Nicolas IturbideIndiaAmy Elsner NEGOTIATION
Jennifer AmigonJapanIoni Bowcher NEGOTIATION
Mujtaba NickaJapanBernardo Dominic NEW
Jeanfrancois VenereItalyXuxue Feng NEGOTIATION
Clifford RimCanadaAsiya Javayant NEW
Alejandro PerinCanadaBernardo Dominic NEW
Jones VocelkaFranceElwin Sharvill UNQUALIFIED
Costa DilliardCanadaAnna Fali UNQUALIFIED
Mujtaba NickaSpainXuxue Feng RENEWAL
Leon OldroydAustraliaXuxue Feng PROPOSAL
Octavia MaletGermanyXuxue Feng NEW
Deepesh ChuiCanadaBernardo Dominic NEGOTIATION
Maria MarrierItalyIvan Magalhaes NEW
David DarakjyCanadaAnna Fali NEW
Salvatore StockhamJapanOnyama Limba QUALIFIED
Kaitlin OstroskyAustraliaAnna Fali UNQUALIFIED
Arvin AlbaresJapanAsiya Javayant PROPOSAL
Ricardo GauchoRussiaOnyama Limba PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Octavia MaletIndiaOnyama Limba UNQUALIFIED
Juan WieserUnited KingdomIoni Bowcher QUALIFIED
Adams MorascaFranceIvan Magalhaes PROPOSAL
Rodrigues CampainSpainElwin Sharvill RENEWAL
Antonio CaudyItalyBernardo Dominic UNQUALIFIED
Deepesh ChuiGermanyBernardo Dominic PROPOSAL
Maria MarrierSpainStephen Shaw NEW
Mayumi KolmetzGermanyXuxue Feng UNQUALIFIED
Jefferson SchemmerFranceStephen Shaw RENEWAL
Salvatore StockhamArgentinaAmy Elsner PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Arvin AlbaresRussia2026-04-01Truhlar And Truhlar Attys PROPOSAL34Onyama Limba
1001Aditya KuskoCanada2026-04-07Chanay, Jeffrey A Esq NEW73Bernardo Dominic
1002Nicolas IturbideGermany2026-04-13Chemel, James L Cpa RENEWAL60Xuxue Feng
1003Ivar PaprockiIndia2026-04-20Benton, John B Jr PROPOSAL62Bernardo Dominic
1004Munro FerenczFrance2026-04-08Dorl, James J Esq RENEWAL6Ivan Magalhaes
1005Ricardo GauchoBrazil2026-03-31Truhlar And Truhlar Attys NEW88Stephen Shaw
1006Deepesh ChuiRussia2026-04-16Morlong Associates QUALIFIED47Stephen Shaw
1007Maria MarrierCanada2026-04-08Morlong Associates UNQUALIFIED10Elwin Sharvill
1008Sinclair WaycottBrazil2026-03-31Rousseaux, Michael Esq RENEWAL59Ivan Magalhaes
1009Izzy GarufiBrazil2026-04-16Feltz Printing Service UNQUALIFIED97Onyama Limba
1010Nicolas IturbideBrazil2026-04-14Rangoni Of Florence QUALIFIED63Amy Elsner
1011Cody SaylorsFrance2026-04-24Truhlar And Truhlar Attys RENEWAL0Stephen Shaw
1012Misaki RoysterFrance2026-04-05Commercial Press NEGOTIATION19Asiya Javayant
1013Alejandro PerinUnited Kingdom2026-04-24Dorl, James J Esq PROPOSAL68Bernardo Dominic
1014David DarakjyGermany2026-04-06Truhlar And Truhlar Attys QUALIFIED56Anna Fali
1015Emily WhobreyCanada2026-04-05Feltz Printing Service QUALIFIED94Onyama Limba
1016Deepesh ChuiUnited Kingdom2026-04-11Feltz Printing Service UNQUALIFIED88Stephen Shaw
1017Deepesh ChuiSpain2026-04-16Benton, John B Jr NEGOTIATION85Asiya Javayant
1018Deepesh ChuiItaly2026-04-13Chanay, Jeffrey A Esq QUALIFIED43Elwin Sharvill
1019Rodrigues CampainArgentina2026-04-09Morlong Associates QUALIFIED18Elwin Sharvill
1020Nicolas IturbideAustralia2026-04-22Chapman, Ross E Esq QUALIFIED66Onyama Limba
1021Arvin AlbaresSpain2026-04-06Buckley Miller Wright QUALIFIED0Onyama Limba
1022Maisha RulapaughItaly2026-04-13Feltz Printing Service UNQUALIFIED53Onyama Limba
1023Ricardo GauchoFrance2026-04-19Rousseaux, Michael Esq NEGOTIATION63Anna Fali
1024Izzy GarufiRussia2026-04-03Feltz Printing Service NEW63Xuxue Feng
1025Faith GillianJapan2026-04-17Commercial Press NEW61Xuxue Feng
1026Francesco ShinkoAustralia2026-03-30Commercial Press QUALIFIED57Xuxue Feng
1027Adams MorascaUnited Kingdom2026-04-11Dorl, James J Esq RENEWAL98Stephen Shaw
1028Alejandro PerinArgentina2026-04-25Commercial Press NEGOTIATION10Bernardo Dominic
1029Silvio SlusarskiUnited Kingdom2026-04-05Dorl, James J Esq PROPOSAL95Anna Fali
1030Aruna FigeroaJapan2026-04-11Chanay, Jeffrey A Esq RENEWAL36Elwin Sharvill
1031Claire TollnerIndia2026-04-24Feiner Bros UNQUALIFIED6Asiya Javayant
1032Maria MarrierUnited Kingdom2026-04-04Chanay, Jeffrey A Esq RENEWAL85Ivan Magalhaes
1033Salvatore StockhamUnited Kingdom2026-04-16Chemel, James L Cpa PROPOSAL73Asiya Javayant
1034Kaitlin OstroskyJapan2026-04-24King, Christopher A Esq QUALIFIED29Stephen Shaw
1035Tony FollerItaly2026-04-09Feiner Bros RENEWAL90Anna Fali
1036Julie StensethCanada2026-03-31Feiner Bros UNQUALIFIED17Xuxue Feng
1037Jefferson SchemmerCanada2026-04-18Chanay, Jeffrey A Esq QUALIFIED6Xuxue Feng
1038Faith GillianJapan2026-04-28Chemel, James L Cpa PROPOSAL88Ivan Magalhaes
1039Francesco ShinkoArgentina2026-04-14Rangoni Of Florence NEW77Asiya Javayant
1040Nicolas IturbideUnited Kingdom2026-04-05Printing Dimensions RENEWAL70Ioni Bowcher
1041Octavia MaletAustralia2026-04-25King, Christopher A Esq PROPOSAL1Stephen Shaw
1042Wickens NestleGermany2026-04-09Printing Dimensions UNQUALIFIED78Stephen Shaw
1043Clifford RimCanada2026-04-10Chapman, Ross E Esq PROPOSAL13Amy Elsner
1044Salvatore StockhamJapan2026-04-14King, Christopher A Esq PROPOSAL51Anna Fali
1045Kaitlin OstroskyRussia2026-04-10Truhlar And Truhlar Attys RENEWAL93Xuxue Feng
1046Arvin AlbaresUnited Kingdom2026-04-17Chemel, James L Cpa QUALIFIED83Amy Elsner
1047Julie StensethUnited Kingdom2026-04-21Benton, John B Jr NEGOTIATION17Ioni Bowcher
1048Aika InouyeItaly2026-04-18Rangoni Of Florence NEW20Anna Fali
1049Mujtaba NickaCanada2026-04-22Dorl, James J Esq RENEWAL9Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Aruna FigeroaIndiaIoni Bowcher PROPOSAL
Kaitlin OstroskyAustraliaAmy Elsner PROPOSAL
Silvio SlusarskiFranceIoni Bowcher QUALIFIED
Emily WhobreyCanadaIvan Magalhaes QUALIFIED
Julie StensethArgentinaIvan Magalhaes UNQUALIFIED
Julie StensethSpainStephen Shaw RENEWAL
Jennifer AmigonGermanyAmy Elsner NEW
James ButtCanadaOnyama Limba NEGOTIATION
Aditya KuskoBrazilBernardo Dominic UNQUALIFIED
Nicolas IturbideGermanyAsiya Javayant NEW
Jeanfrancois VenereItalyIvan Magalhaes PROPOSAL
Maisha RulapaughUnited KingdomBernardo Dominic NEW
James ButtIndiaElwin Sharvill NEGOTIATION
Rodrigues CampainIndiaAsiya Javayant PROPOSAL
Juan WieserJapanAsiya Javayant NEW
Aditya KuskoIndiaIoni Bowcher UNQUALIFIED
Leja CaldareraCanadaElwin Sharvill PROPOSAL
Adams MorascaGermanyXuxue Feng NEGOTIATION
James ButtFranceAnna Fali NEW
Cody SaylorsArgentinaAmy Elsner NEW
Maisha RulapaughSpainStephen Shaw NEGOTIATION
Clifford RimUnited KingdomOnyama Limba QUALIFIED
Francesco ShinkoSpainXuxue Feng PROPOSAL
Antonio CaudyGermanyAsiya Javayant UNQUALIFIED
Emily WhobreyItalyAnna Fali NEGOTIATION
Adams MorascaUnited KingdomOnyama Limba NEGOTIATION
David DarakjyIndiaStephen Shaw NEW
Wickens NestleFranceIvan Magalhaes RENEWAL
Aditya KuskoCanadaElwin Sharvill UNQUALIFIED
Smith GlickSpainIvan Magalhaes NEGOTIATION
Ashley DoeArgentinaAsiya Javayant QUALIFIED
Antonio CaudyArgentinaBernardo Dominic UNQUALIFIED
Octavia MaletFranceStephen Shaw RENEWAL
Murillo MaletAustraliaBernardo Dominic NEW
Emily WhobreyGermanyBernardo Dominic RENEWAL
Deepesh ChuiBrazilIoni Bowcher RENEWAL
Jones VocelkaItalyIoni Bowcher QUALIFIED
Aika InouyeJapanAmy Elsner RENEWAL
Antonio CaudySpainIvan Magalhaes NEGOTIATION
Tony FollerBrazilBernardo Dominic PROPOSAL
Rodrigues CampainCanadaIoni Bowcher NEW
Aditya KuskoIndiaStephen Shaw NEW
Maisha RulapaughCanadaAnna Fali NEW
Rodrigues CampainIndiaAsiya Javayant PROPOSAL
Francesco ShinkoIndiaXuxue Feng NEGOTIATION
Chavez BriddickBrazilElwin Sharvill RENEWAL
Silvio SlusarskiBrazilAmy Elsner NEGOTIATION
Faith GillianUnited KingdomXuxue Feng PROPOSAL
Deepesh ChuiFranceStephen Shaw PROPOSAL
Jeanfrancois VenereItalyStephen Shaw UNQUALIFIED
Frozen Columns
Name
Jennifer Amigon
Deepesh Chui
Wickens Nestle
Darci Poquette
Julie Stenseth
Adams Morasca
Stacey Maclead
Maria Marrier
Jeanfrancois Venere
Stacey Maclead
Kadeem Flosi
Stacey Maclead
Ricardo Gaucho
Darci Poquette
Julie Stenseth
Jefferson Schemmer
Wickens Nestle
Maria Marrier
Jefferson Schemmer
Wickens Nestle
Isabel Bowley
Julie Stenseth
Aruna Figeroa
Jefferson Schemmer
Salvatore Stockham
Maria Marrier
Clifford Rim
Chavez Briddick
Arvin Albares
Mujtaba Nicka
Mujtaba Nicka
Chavez Briddick
Ashley Doe
Adams Morasca
Jefferson Schemmer
Salvatore Stockham
Juan Wieser
James Butt
Juan Wieser
Ashley Doe
Jeanfrancois Venere
Salvatore Stockham
Mujtaba Nicka
Juan Wieser
Francesco Shinko
Jones Vocelka
Jones Vocelka
Francesco Shinko
Stacey Maclead
Salvatore Stockham
IdCountryDate
1000Spain2026-04-12
1001Germany2026-04-14
1002United Kingdom2026-04-10
1003Argentina2026-04-02
1004Germany2026-04-24
1005Spain2026-03-30
1006Argentina2026-04-17
1007Canada2026-04-05
1008Japan2026-04-07
1009France2026-04-12
1010Italy2026-04-11
1011Germany2026-04-28
1012France2026-04-15
1013India2026-04-05
1014Russia2026-04-23
1015Japan2026-04-08
1016Brazil2026-04-20
1017Spain2026-04-19
1018United Kingdom2026-04-22
1019Canada2026-04-24
1020Argentina2026-04-03
1021Germany2026-03-31
1022Argentina2026-04-10
1023Canada2026-04-19
1024Germany2026-04-19
1025Germany2026-04-26
1026Spain2026-04-27
1027Germany2026-04-01
1028United Kingdom2026-04-17
1029Russia2026-04-08
1030Australia2026-04-23
1031Australia2026-04-18
1032Brazil2026-04-02
1033France2026-04-10
1034India2026-04-24
1035Brazil2026-04-15
1036France2026-04-17
1037Canada2026-04-04
1038Australia2026-04-25
1039Argentina2026-04-04
1040Japan2026-03-31
1041Japan2026-04-07
1042Russia2026-04-18
1043Japan2026-03-31
1044Italy2026-04-03
1045Russia2026-04-18
1046Canada2026-04-01
1047Australia2026-04-10
1048India2026-04-23
1049Italy2026-04-21

On-Demand Data

NameIdCountryDate
Morrow Ruta1000Germany2026-04-18
Smith Glick1001Italy2026-04-28
Salvatore Stockham1002Italy2026-03-30
Clifford Rim1003Italy2026-04-28
Adams Morasca1004Spain2026-03-30
Aika Inouye1005United Kingdom2026-04-09
Deepesh Chui1006United Kingdom2026-04-25
Aruna Figeroa1007Japan2026-04-27
Leja Caldarera1008Australia2026-04-18
Alejandro Perin1009Canada2026-04-22
Aruna Figeroa1010Russia2026-04-20
Isabel Bowley1011Spain2026-04-28
Faith Gillian1012Russia2026-04-11
Leon Oldroyd1013Argentina2026-04-21
David Darakjy1014Canada2026-04-06
Adams Morasca1015Germany2026-04-15
Jefferson Schemmer1016Japan2026-04-03
Maisha Rulapaugh1017Australia2026-04-07
Wickens Nestle1018India2026-04-21
Leja Caldarera1019Italy2026-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja CaldareraRussiaElwin Sharvill UNQUALIFIED
Aika InouyeBrazilElwin Sharvill NEGOTIATION
Claire TollnerCanadaAsiya Javayant RENEWAL
Clifford RimUnited KingdomAmy Elsner NEW
Mujtaba NickaGermanyOnyama Limba QUALIFIED
Clifford RimItalyElwin Sharvill RENEWAL
Kadeem FlosiBrazilIoni Bowcher NEGOTIATION
David DarakjyGermanyBernardo Dominic UNQUALIFIED
Smith GlickArgentinaAmy Elsner QUALIFIED
Salvatore StockhamUnited KingdomStephen Shaw UNQUALIFIED
Rodrigues CampainIndiaStephen Shaw QUALIFIED
Greenwood BologniaRussiaStephen Shaw NEGOTIATION
Mujtaba NickaItalyBernardo Dominic PROPOSAL
Francesco ShinkoArgentinaXuxue Feng RENEWAL
Izzy GarufiIndiaStephen Shaw UNQUALIFIED
Morrow RutaAustraliaXuxue Feng NEGOTIATION
Stacey MacleadRussiaElwin Sharvill PROPOSAL
Izzy GarufiArgentinaStephen Shaw NEGOTIATION
Faith GillianFranceOnyama Limba QUALIFIED
Deepesh ChuiIndiaAsiya Javayant NEGOTIATION
Murillo MaletArgentinaAnna Fali UNQUALIFIED
Maisha RulapaughSpainIvan Magalhaes RENEWAL
Deepesh ChuiUnited KingdomXuxue Feng QUALIFIED
Leja CaldareraUnited KingdomAmy Elsner NEW
Smith GlickRussiaAsiya Javayant QUALIFIED
Kaitlin OstroskySpainAmy Elsner NEGOTIATION
Aditya KuskoSpainBernardo Dominic PROPOSAL
Francesco ShinkoAustraliaAnna Fali QUALIFIED
Tony FollerCanadaOnyama Limba PROPOSAL
Ricardo GauchoGermanyAmy Elsner UNQUALIFIED
Clifford RimAustraliaOnyama Limba QUALIFIED
Rodrigues CampainUnited KingdomIoni Bowcher PROPOSAL
Maisha RulapaughJapanAsiya Javayant PROPOSAL
Maisha RulapaughRussiaElwin Sharvill NEGOTIATION
Arvin AlbaresSpainOnyama Limba NEGOTIATION
Kadeem FlosiRussiaIvan Magalhaes RENEWAL
Juan WieserBrazilBernardo Dominic NEGOTIATION
Misaki RoysterBrazilStephen Shaw NEW
Emily WhobreyFranceBernardo Dominic PROPOSAL
Rodrigues CampainRussiaOnyama Limba 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>