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
Wickens NestleFranceIoni Bowcher NEW
Clifford RimSpainAmy Elsner NEGOTIATION
Silvio SlusarskiGermanyAsiya Javayant NEW
Nicolas IturbideCanadaAnna Fali PROPOSAL
Maria MarrierItalyAnna Fali UNQUALIFIED
Deepesh ChuiJapanBernardo Dominic NEW
Jefferson SchemmerItalyAnna Fali NEW
Nicolas IturbideGermanyBernardo Dominic UNQUALIFIED
Faith GillianJapanAsiya Javayant PROPOSAL
Leja CaldareraAustraliaStephen Shaw RENEWAL
Ashley DoeAustraliaAmy Elsner UNQUALIFIED
Sinclair WaycottJapanOnyama Limba NEW
Costa DilliardFranceStephen Shaw UNQUALIFIED
Stacey MacleadBrazilOnyama Limba UNQUALIFIED
Antonio CaudyGermanyAnna Fali NEGOTIATION
Aruna FigeroaUnited KingdomIvan Magalhaes UNQUALIFIED
Mayumi KolmetzSpainBernardo Dominic NEW
Julie StensethItalyIvan Magalhaes PROPOSAL
Nicolas IturbideItalyStephen Shaw RENEWAL
Adams MorascaFranceXuxue Feng QUALIFIED
Jennifer AmigonUnited KingdomOnyama Limba NEGOTIATION
Kaitlin OstroskyItalyAsiya Javayant NEW
Cody SaylorsUnited KingdomAsiya Javayant QUALIFIED
Izzy GarufiGermanyIvan Magalhaes NEW
Cody SaylorsCanadaElwin Sharvill RENEWAL
Leon OldroydGermanyAmy Elsner NEGOTIATION
Alejandro PerinSpainAnna Fali RENEWAL
Misaki RoysterJapanAnna Fali PROPOSAL
Maisha RulapaughGermanyStephen Shaw NEW
Juan WieserGermanyAmy Elsner UNQUALIFIED
David DarakjyIndiaElwin Sharvill PROPOSAL
Alejandro PerinJapanOnyama Limba PROPOSAL
Adams MorascaRussiaOnyama Limba QUALIFIED
Deepesh ChuiCanadaStephen Shaw PROPOSAL
Smith GlickIndiaAmy Elsner QUALIFIED
James ButtCanadaAmy Elsner NEW
Sinclair WaycottUnited KingdomAnna Fali PROPOSAL
Sinclair WaycottUnited KingdomXuxue Feng NEGOTIATION
Greenwood BologniaBrazilStephen Shaw NEGOTIATION
Sinclair WaycottItalyAnna Fali NEGOTIATION
Aditya KuskoAustraliaAnna Fali RENEWAL
Silvio SlusarskiJapanAnna Fali NEGOTIATION
Silvio SlusarskiUnited KingdomAnna Fali RENEWAL
Salvatore StockhamAustraliaIoni Bowcher NEW
Rodrigues CampainRussiaIoni Bowcher NEW
Ashley DoeBrazilIvan Magalhaes PROPOSAL
Julie StensethUnited KingdomAnna Fali NEW
Silvio SlusarskiSpainElwin Sharvill PROPOSAL
Munro FerenczItalyIvan Magalhaes PROPOSAL
Julie StensethArgentinaIoni Bowcher NEW
Horizontal
NameCountryRepresentativeStatus
Aditya KuskoRussiaIvan Magalhaes NEGOTIATION
Wickens NestleJapanIoni Bowcher RENEWAL
Cody SaylorsAustraliaAnna Fali PROPOSAL
Kadeem FlosiGermanyAmy Elsner QUALIFIED
Jennifer AmigonGermanyAsiya Javayant PROPOSAL
Leja CaldareraJapanXuxue Feng NEW
Nicolas IturbideAustraliaAnna Fali PROPOSAL
Izzy GarufiAustraliaXuxue Feng NEW
Rodrigues CampainSpainOnyama Limba RENEWAL
Aruna FigeroaRussiaElwin Sharvill UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Costa DilliardIndia2026-04-18King, Christopher A Esq RENEWAL83Stephen Shaw
1001Adams MorascaIndia2026-04-20Commercial Press PROPOSAL56Ivan Magalhaes
1002Antonio CaudyJapan2026-04-22Feiner Bros QUALIFIED70Stephen Shaw
1003Izzy GarufiJapan2026-03-28Rangoni Of Florence UNQUALIFIED69Ioni Bowcher
1004Salvatore StockhamRussia2026-04-10Chapman, Ross E Esq PROPOSAL23Ivan Magalhaes
1005Aditya KuskoIndia2026-04-04Truhlar And Truhlar Attys RENEWAL50Ivan Magalhaes
1006Stacey MacleadBrazil2026-04-23Chanay, Jeffrey A Esq UNQUALIFIED17Anna Fali
1007Mujtaba NickaGermany2026-04-10Truhlar And Truhlar Attys QUALIFIED20Stephen Shaw
1008Nicolas IturbideBrazil2026-04-17Chapman, Ross E Esq PROPOSAL80Onyama Limba
1009Rodrigues CampainAustralia2026-03-29Benton, John B Jr QUALIFIED92Amy Elsner
1010Johnson SergiBrazil2026-04-09Feiner Bros QUALIFIED81Onyama Limba
1011Emily WhobreyIndia2026-03-26Printing Dimensions NEGOTIATION86Asiya Javayant
1012Octavia MaletAustralia2026-03-25Truhlar And Truhlar Attys QUALIFIED96Elwin Sharvill
1013Antonio CaudyAustralia2026-04-03Rousseaux, Michael Esq NEW70Amy Elsner
1014Munro FerenczCanada2026-04-21Printing Dimensions RENEWAL98Stephen Shaw
1015James ButtAustralia2026-04-20Printing Dimensions NEW25Bernardo Dominic
1016Isabel BowleyIndia2026-04-19Chemel, James L Cpa QUALIFIED47Bernardo Dominic
1017Jeanfrancois VenereBrazil2026-04-10King, Christopher A Esq UNQUALIFIED25Elwin Sharvill
1018Claire TollnerJapan2026-04-21Chemel, James L Cpa UNQUALIFIED86Stephen Shaw
1019Smith GlickFrance2026-03-27Chanay, Jeffrey A Esq NEGOTIATION51Asiya Javayant
1020Kaitlin OstroskyCanada2026-03-30Rousseaux, Michael Esq UNQUALIFIED95Asiya Javayant
1021Darci PoquetteArgentina2026-03-28Feltz Printing Service RENEWAL9Stephen Shaw
1022Jeanfrancois VenereArgentina2026-04-05Morlong Associates QUALIFIED17Amy Elsner
1023Leja CaldareraItaly2026-04-18Chanay, Jeffrey A Esq NEW19Stephen Shaw
1024Morrow RutaSpain2026-04-20Rousseaux, Michael Esq QUALIFIED75Elwin Sharvill
1025Isabel BowleyGermany2026-04-07Commercial Press RENEWAL19Onyama Limba
1026Ricardo GauchoUnited Kingdom2026-04-11Rousseaux, Michael Esq PROPOSAL93Ioni Bowcher
1027Chavez BriddickSpain2026-04-21Chemel, James L Cpa UNQUALIFIED90Onyama Limba
1028Octavia MaletItaly2026-03-31Printing Dimensions UNQUALIFIED79Amy Elsner
1029Juan WieserSpain2026-04-21Benton, John B Jr UNQUALIFIED21Ioni Bowcher
1030Leon OldroydJapan2026-04-17Rangoni Of Florence UNQUALIFIED14Ioni Bowcher
1031Mayumi KolmetzGermany2026-04-03Commercial Press NEGOTIATION13Bernardo Dominic
1032Jones VocelkaArgentina2026-03-25Rousseaux, Michael Esq NEW67Onyama Limba
1033Smith GlickGermany2026-04-04Buckley Miller Wright PROPOSAL74Anna Fali
1034Jones VocelkaCanada2026-04-09Chanay, Jeffrey A Esq RENEWAL95Amy Elsner
1035Mujtaba NickaRussia2026-04-23Morlong Associates QUALIFIED51Ivan Magalhaes
1036Nicolas IturbideFrance2026-03-25Commercial Press UNQUALIFIED57Asiya Javayant
1037Julie StensethItaly2026-04-16Buckley Miller Wright RENEWAL9Stephen Shaw
1038Rodrigues CampainAustralia2026-04-22Feltz Printing Service NEGOTIATION43Onyama Limba
1039Murillo MaletIndia2026-04-20Feltz Printing Service PROPOSAL99Bernardo Dominic
1040Leja CaldareraCanada2026-04-23Chanay, Jeffrey A Esq UNQUALIFIED56Stephen Shaw
1041Salvatore StockhamItaly2026-04-20Dorl, James J Esq PROPOSAL17Ivan Magalhaes
1042Ricardo GauchoJapan2026-04-12Rangoni Of Florence NEGOTIATION13Ivan Magalhaes
1043Greenwood BologniaCanada2026-04-09King, Christopher A Esq NEGOTIATION23Anna Fali
1044Sinclair WaycottSpain2026-04-16Rousseaux, Michael Esq NEW38Onyama Limba
1045Kadeem FlosiCanada2026-04-10Morlong Associates QUALIFIED14Ivan Magalhaes
1046Misaki RoysterFrance2026-03-27Rousseaux, Michael Esq QUALIFIED57Amy Elsner
1047Antonio CaudyUnited Kingdom2026-04-22Feiner Bros UNQUALIFIED58Amy Elsner
1048Cody SaylorsAustralia2026-03-29Chemel, James L Cpa PROPOSAL6Elwin Sharvill
1049Mujtaba NickaBrazil2026-04-22Truhlar And Truhlar Attys QUALIFIED40Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Claire TollnerCanadaAsiya Javayant UNQUALIFIED
Ivar PaprockiArgentinaAsiya Javayant QUALIFIED
Tony FollerRussiaStephen Shaw QUALIFIED
Faith GillianUnited KingdomBernardo Dominic QUALIFIED
Antonio CaudyRussiaAsiya Javayant UNQUALIFIED
Francesco ShinkoItalyOnyama Limba NEW
Rodrigues CampainFranceBernardo Dominic QUALIFIED
Isabel BowleyIndiaXuxue Feng PROPOSAL
Kaitlin OstroskyItalyAsiya Javayant QUALIFIED
Francesco ShinkoRussiaElwin Sharvill RENEWAL
Silvio SlusarskiUnited KingdomIvan Magalhaes NEGOTIATION
Ivar PaprockiSpainElwin Sharvill PROPOSAL
Arvin AlbaresRussiaIoni Bowcher RENEWAL
Antonio CaudyBrazilIoni Bowcher UNQUALIFIED
Jones VocelkaJapanElwin Sharvill QUALIFIED
Costa DilliardIndiaAnna Fali NEGOTIATION
Tony FollerRussiaIvan Magalhaes NEGOTIATION
Antonio CaudyJapanXuxue Feng RENEWAL
Aruna FigeroaGermanyAsiya Javayant QUALIFIED
Aruna FigeroaAustraliaIvan Magalhaes PROPOSAL
Maria MarrierBrazilElwin Sharvill NEGOTIATION
Ricardo GauchoAustraliaAnna Fali UNQUALIFIED
Deepesh ChuiCanadaBernardo Dominic NEGOTIATION
Adams MorascaCanadaOnyama Limba RENEWAL
Nicolas IturbideRussiaIvan Magalhaes RENEWAL
Izzy GarufiGermanyAsiya Javayant PROPOSAL
Aruna FigeroaGermanyElwin Sharvill NEGOTIATION
Darci PoquetteArgentinaAmy Elsner NEW
Jeanfrancois VenereUnited KingdomXuxue Feng RENEWAL
Munro FerenczSpainIoni Bowcher QUALIFIED
Misaki RoysterCanadaBernardo Dominic QUALIFIED
Leon OldroydUnited KingdomAsiya Javayant PROPOSAL
Francesco ShinkoFranceAsiya Javayant RENEWAL
Sinclair WaycottGermanyAnna Fali QUALIFIED
Tony FollerGermanyBernardo Dominic RENEWAL
David DarakjyJapanAnna Fali UNQUALIFIED
Maria MarrierUnited KingdomOnyama Limba RENEWAL
Jennifer AmigonRussiaAmy Elsner UNQUALIFIED
Leja CaldareraAustraliaOnyama Limba RENEWAL
Ivar PaprockiRussiaElwin Sharvill UNQUALIFIED
Francesco ShinkoSpainOnyama Limba QUALIFIED
Arvin AlbaresIndiaIoni Bowcher NEGOTIATION
Alejandro PerinFranceElwin Sharvill NEGOTIATION
Wickens NestleBrazilIoni Bowcher PROPOSAL
Tony FollerFranceAsiya Javayant UNQUALIFIED
Tony FollerUnited KingdomAmy Elsner QUALIFIED
Maisha RulapaughFranceElwin Sharvill PROPOSAL
Claire TollnerCanadaElwin Sharvill PROPOSAL
Nicolas IturbideItalyIvan Magalhaes UNQUALIFIED
Johnson SergiCanadaAsiya Javayant PROPOSAL
Frozen Columns
Name
Nicolas Iturbide
Leon Oldroyd
Kaitlin Ostrosky
Stacey Maclead
Claire Tollner
Aditya Kusko
Greenwood Bolognia
Wickens Nestle
Tony Foller
Aruna Figeroa
Stacey Maclead
Emily Whobrey
Maisha Rulapaugh
Clifford Rim
Salvatore Stockham
Clifford Rim
Kadeem Flosi
Leja Caldarera
Ashley Doe
Jefferson Schemmer
Tony Foller
Sinclair Waycott
Chavez Briddick
James Butt
Maisha Rulapaugh
Cody Saylors
Adams Morasca
Costa Dilliard
Mayumi Kolmetz
Jeanfrancois Venere
Murillo Malet
Kaitlin Ostrosky
Sinclair Waycott
Ashley Doe
Kadeem Flosi
Morrow Ruta
Clifford Rim
Aika Inouye
Mayumi Kolmetz
Alejandro Perin
Aruna Figeroa
Smith Glick
Kadeem Flosi
Leja Caldarera
Jefferson Schemmer
Ashley Doe
Tony Foller
Aika Inouye
Jefferson Schemmer
Aika Inouye
IdCountryDate
1000Japan2026-03-28
1001United Kingdom2026-04-11
1002Brazil2026-04-09
1003Spain2026-03-30
1004Australia2026-03-28
1005Spain2026-04-19
1006Argentina2026-04-15
1007Brazil2026-04-03
1008Australia2026-03-31
1009United Kingdom2026-03-31
1010Spain2026-04-14
1011Argentina2026-04-03
1012Spain2026-04-01
1013Australia2026-04-16
1014Italy2026-03-27
1015Russia2026-04-04
1016France2026-04-14
1017Germany2026-04-02
1018Brazil2026-04-04
1019Germany2026-04-22
1020Russia2026-04-11
1021Australia2026-04-16
1022Germany2026-03-31
1023Canada2026-04-01
1024Japan2026-04-06
1025Russia2026-04-22
1026Germany2026-04-13
1027France2026-04-09
1028Italy2026-04-07
1029India2026-04-06
1030Brazil2026-04-17
1031France2026-04-18
1032United Kingdom2026-03-28
1033Brazil2026-04-11
1034United Kingdom2026-03-26
1035Brazil2026-04-17
1036Japan2026-04-07
1037Spain2026-04-05
1038Canada2026-04-04
1039Spain2026-04-21
1040France2026-03-30
1041Japan2026-03-28
1042Brazil2026-04-06
1043United Kingdom2026-04-19
1044Canada2026-03-28
1045Brazil2026-04-08
1046France2026-04-13
1047Germany2026-04-21
1048United Kingdom2026-04-10
1049Japan2026-04-20

On-Demand Data

NameIdCountryDate
Stacey Maclead1000Spain2026-04-15
Leja Caldarera1001Italy2026-03-26
Murillo Malet1002Japan2026-04-10
Wickens Nestle1003India2026-03-27
Ivar Paprocki1004Japan2026-04-03
Morrow Ruta1005Brazil2026-03-28
Aruna Figeroa1006Canada2026-04-13
Chavez Briddick1007Japan2026-04-06
Arvin Albares1008India2026-04-10
Silvio Slusarski1009Spain2026-04-20
Greenwood Bolognia1010Argentina2026-03-31
Kaitlin Ostrosky1011Australia2026-04-19
Aditya Kusko1012United Kingdom2026-04-15
Maria Marrier1013Spain2026-03-31
Leja Caldarera1014Italy2026-03-30
Faith Gillian1015Argentina2026-03-29
Aruna Figeroa1016Canada2026-04-13
Maria Marrier1017France2026-04-10
Faith Gillian1018Australia2026-03-27
Clifford Rim1019Australia2026-04-02
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones VocelkaArgentinaElwin Sharvill NEW
Chavez BriddickJapanBernardo Dominic RENEWAL
Leja CaldareraJapanStephen Shaw RENEWAL
Faith GillianFranceXuxue Feng RENEWAL
Leja CaldareraGermanyBernardo Dominic PROPOSAL
Maria MarrierRussiaAmy Elsner QUALIFIED
Adams MorascaRussiaAnna Fali PROPOSAL
Mayumi KolmetzItalyStephen Shaw NEGOTIATION
Darci PoquetteArgentinaBernardo Dominic QUALIFIED
Arvin AlbaresGermanyBernardo Dominic NEW
Costa DilliardUnited KingdomAmy Elsner PROPOSAL
Jones VocelkaBrazilAnna Fali QUALIFIED
Maisha RulapaughJapanIvan Magalhaes QUALIFIED
Greenwood BologniaItalyIvan Magalhaes PROPOSAL
Jeanfrancois VenereGermanyBernardo Dominic NEGOTIATION
Aditya KuskoAustraliaAnna Fali PROPOSAL
Morrow RutaRussiaStephen Shaw PROPOSAL
Stacey MacleadGermanyXuxue Feng UNQUALIFIED
Clifford RimGermanyOnyama Limba PROPOSAL
Cody SaylorsJapanAsiya Javayant QUALIFIED
Maria MarrierUnited KingdomElwin Sharvill UNQUALIFIED
Wickens NestleSpainOnyama Limba NEGOTIATION
David DarakjyBrazilAnna Fali NEW
Clifford RimArgentinaBernardo Dominic RENEWAL
Nicolas IturbideSpainElwin Sharvill UNQUALIFIED
Izzy GarufiSpainBernardo Dominic RENEWAL
Tony FollerItalyXuxue Feng UNQUALIFIED
Silvio SlusarskiSpainAsiya Javayant NEGOTIATION
Nicolas IturbideJapanElwin Sharvill PROPOSAL
Salvatore StockhamCanadaIvan Magalhaes PROPOSAL
Aruna FigeroaUnited KingdomXuxue Feng PROPOSAL
Maisha RulapaughSpainAmy Elsner QUALIFIED
Chavez BriddickFranceIvan Magalhaes NEGOTIATION
Jeanfrancois VenereJapanIoni Bowcher NEGOTIATION
Aika InouyeItalyAnna Fali UNQUALIFIED
Costa DilliardRussiaAnna Fali NEW
Mujtaba NickaFranceAmy Elsner RENEWAL
Munro FerenczRussiaElwin Sharvill UNQUALIFIED
Francesco ShinkoCanadaBernardo Dominic RENEWAL
Isabel BowleyRussiaOnyama Limba 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>