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
Salvatore StockhamFranceAnna Fali NEW
Emily WhobreySpainStephen Shaw NEGOTIATION
Cody SaylorsArgentinaIvan Magalhaes UNQUALIFIED
Emily WhobreyArgentinaBernardo Dominic UNQUALIFIED
Arvin AlbaresAustraliaOnyama Limba NEGOTIATION
Kadeem FlosiCanadaElwin Sharvill UNQUALIFIED
Ricardo GauchoUnited KingdomXuxue Feng PROPOSAL
Faith GillianAustraliaAmy Elsner NEGOTIATION
Faith GillianFranceElwin Sharvill RENEWAL
Greenwood BologniaAustraliaElwin Sharvill NEW
Darci PoquetteIndiaBernardo Dominic QUALIFIED
Cody SaylorsItalyAmy Elsner RENEWAL
Johnson SergiRussiaXuxue Feng NEW
Silvio SlusarskiGermanyOnyama Limba NEGOTIATION
Izzy GarufiBrazilAsiya Javayant NEGOTIATION
Johnson SergiIndiaAnna Fali RENEWAL
Ashley DoeGermanyIoni Bowcher RENEWAL
Isabel BowleyRussiaOnyama Limba RENEWAL
Chavez BriddickJapanXuxue Feng NEW
Sinclair WaycottBrazilElwin Sharvill RENEWAL
Faith GillianAustraliaXuxue Feng RENEWAL
Antonio CaudySpainBernardo Dominic NEW
Leon OldroydItalyAsiya Javayant NEW
Mayumi KolmetzUnited KingdomIvan Magalhaes NEW
Greenwood BologniaItalyAnna Fali UNQUALIFIED
Greenwood BologniaCanadaAmy Elsner RENEWAL
Jefferson SchemmerCanadaAsiya Javayant UNQUALIFIED
Salvatore StockhamFranceStephen Shaw PROPOSAL
Julie StensethUnited KingdomOnyama Limba UNQUALIFIED
Chavez BriddickRussiaAsiya Javayant NEGOTIATION
Morrow RutaBrazilAmy Elsner QUALIFIED
Claire TollnerJapanAsiya Javayant NEW
Leon OldroydGermanyXuxue Feng NEGOTIATION
Wickens NestleGermanyAsiya Javayant PROPOSAL
Munro FerenczUnited KingdomElwin Sharvill QUALIFIED
Cody SaylorsFranceElwin Sharvill QUALIFIED
Cody SaylorsBrazilBernardo Dominic NEW
Mujtaba NickaItalyAsiya Javayant RENEWAL
Antonio CaudyGermanyXuxue Feng NEW
Leja CaldareraAustraliaBernardo Dominic NEGOTIATION
Octavia MaletBrazilAnna Fali QUALIFIED
Salvatore StockhamUnited KingdomAnna Fali RENEWAL
Leja CaldareraBrazilXuxue Feng QUALIFIED
Isabel BowleyRussiaStephen Shaw PROPOSAL
Faith GillianJapanElwin Sharvill NEGOTIATION
Maisha RulapaughBrazilIvan Magalhaes PROPOSAL
Munro FerenczBrazilAnna Fali PROPOSAL
Costa DilliardAustraliaIoni Bowcher PROPOSAL
Johnson SergiBrazilBernardo Dominic QUALIFIED
Faith GillianSpainElwin Sharvill RENEWAL
Horizontal
NameCountryRepresentativeStatus
Munro FerenczCanadaAsiya Javayant QUALIFIED
Munro FerenczGermanyOnyama Limba NEGOTIATION
Smith GlickUnited KingdomXuxue Feng RENEWAL
Claire TollnerFranceOnyama Limba UNQUALIFIED
James ButtBrazilBernardo Dominic NEGOTIATION
Arvin AlbaresArgentinaStephen Shaw QUALIFIED
Alejandro PerinGermanyIvan Magalhaes QUALIFIED
Nicolas IturbideAustraliaXuxue Feng UNQUALIFIED
Antonio CaudyJapanIvan Magalhaes PROPOSAL
Izzy GarufiCanadaStephen Shaw NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Juan WieserUnited Kingdom2026-04-30Benton, John B Jr NEGOTIATION16Bernardo Dominic
1001Alejandro PerinAustralia2026-05-03Feltz Printing Service RENEWAL30Elwin Sharvill
1002Misaki RoysterCanada2026-05-07Chanay, Jeffrey A Esq NEGOTIATION19Ivan Magalhaes
1003Juan WieserArgentina2026-05-22Morlong Associates PROPOSAL36Anna Fali
1004Leja CaldareraCanada2026-05-20Feltz Printing Service RENEWAL8Bernardo Dominic
1005Adams MorascaJapan2026-05-13Buckley Miller Wright NEW18Elwin Sharvill
1006Octavia MaletArgentina2026-05-04Dorl, James J Esq RENEWAL58Asiya Javayant
1007Salvatore StockhamFrance2026-04-30Feltz Printing Service UNQUALIFIED83Bernardo Dominic
1008Nicolas IturbideAustralia2026-05-07Dorl, James J Esq UNQUALIFIED90Ioni Bowcher
1009Emily WhobreyJapan2026-04-29Truhlar And Truhlar Attys UNQUALIFIED28Ivan Magalhaes
1010Francesco ShinkoGermany2026-04-25Buckley Miller Wright RENEWAL60Xuxue Feng
1011Maria MarrierIndia2026-04-25Chanay, Jeffrey A Esq PROPOSAL45Onyama Limba
1012Tony FollerCanada2026-05-02Chapman, Ross E Esq QUALIFIED64Anna Fali
1013Smith GlickFrance2026-05-02Dorl, James J Esq UNQUALIFIED66Xuxue Feng
1014Jeanfrancois VenereBrazil2026-05-04Chapman, Ross E Esq PROPOSAL14Elwin Sharvill
1015Aditya KuskoIndia2026-05-10Chapman, Ross E Esq UNQUALIFIED7Anna Fali
1016Isabel BowleyUnited Kingdom2026-05-02Feiner Bros QUALIFIED94Onyama Limba
1017Claire TollnerJapan2026-05-12Commercial Press QUALIFIED51Ioni Bowcher
1018Murillo MaletBrazil2026-05-15Chapman, Ross E Esq UNQUALIFIED85Anna Fali
1019Jones VocelkaJapan2026-05-05Chanay, Jeffrey A Esq NEGOTIATION19Onyama Limba
1020Nicolas IturbideAustralia2026-05-19Rangoni Of Florence PROPOSAL19Elwin Sharvill
1021Kadeem FlosiCanada2026-05-11Benton, John B Jr RENEWAL30Elwin Sharvill
1022Rodrigues CampainSpain2026-05-15Morlong Associates PROPOSAL67Elwin Sharvill
1023Maisha RulapaughFrance2026-04-25Rousseaux, Michael Esq PROPOSAL49Amy Elsner
1024Murillo MaletUnited Kingdom2026-05-13Chemel, James L Cpa RENEWAL21Ioni Bowcher
1025Maisha RulapaughUnited Kingdom2026-05-15Rangoni Of Florence UNQUALIFIED47Ivan Magalhaes
1026Misaki RoysterArgentina2026-05-19Rangoni Of Florence NEGOTIATION71Anna Fali
1027Cody SaylorsUnited Kingdom2026-05-02Rousseaux, Michael Esq NEGOTIATION97Ivan Magalhaes
1028Johnson SergiCanada2026-05-05Chanay, Jeffrey A Esq NEW80Bernardo Dominic
1029Tony FollerAustralia2026-05-16Chapman, Ross E Esq NEGOTIATION98Anna Fali
1030Clifford RimItaly2026-04-26Printing Dimensions RENEWAL46Stephen Shaw
1031Chavez BriddickItaly2026-04-25Buckley Miller Wright NEW7Anna Fali
1032Arvin AlbaresIndia2026-05-20Dorl, James J Esq NEGOTIATION18Asiya Javayant
1033Aditya KuskoBrazil2026-05-10Truhlar And Truhlar Attys RENEWAL52Ioni Bowcher
1034Kaitlin OstroskyRussia2026-05-21Rangoni Of Florence PROPOSAL91Onyama Limba
1035Kaitlin OstroskyArgentina2026-05-19Chemel, James L Cpa UNQUALIFIED36Elwin Sharvill
1036Jeanfrancois VenereFrance2026-05-07Feltz Printing Service NEGOTIATION97Bernardo Dominic
1037Leon OldroydRussia2026-05-12Benton, John B Jr NEGOTIATION55Stephen Shaw
1038Tony FollerUnited Kingdom2026-05-24King, Christopher A Esq RENEWAL13Ioni Bowcher
1039David DarakjyAustralia2026-05-14Truhlar And Truhlar Attys NEW42Asiya Javayant
1040Arvin AlbaresSpain2026-05-08Feiner Bros NEGOTIATION18Asiya Javayant
1041Kadeem FlosiCanada2026-04-27Dorl, James J Esq RENEWAL10Asiya Javayant
1042Adams MorascaBrazil2026-05-08Chanay, Jeffrey A Esq UNQUALIFIED61Stephen Shaw
1043Mujtaba NickaBrazil2026-05-07King, Christopher A Esq PROPOSAL37Onyama Limba
1044Silvio SlusarskiBrazil2026-05-07Chemel, James L Cpa PROPOSAL43Stephen Shaw
1045Adams MorascaRussia2026-05-18Rousseaux, Michael Esq PROPOSAL50Ivan Magalhaes
1046Arvin AlbaresSpain2026-05-18Benton, John B Jr UNQUALIFIED73Asiya Javayant
1047Jeanfrancois VenereItaly2026-05-20Chanay, Jeffrey A Esq UNQUALIFIED88Amy Elsner
1048Murillo MaletFrance2026-04-26Feiner Bros NEW27Ioni Bowcher
1049Francesco ShinkoUnited Kingdom2026-05-10Chemel, James L Cpa QUALIFIED20Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Costa DilliardGermanyAmy Elsner NEGOTIATION
Octavia MaletBrazilAnna Fali QUALIFIED
Claire TollnerRussiaAsiya Javayant NEW
Aditya KuskoArgentinaElwin Sharvill NEW
Faith GillianItalyBernardo Dominic NEGOTIATION
Ricardo GauchoUnited KingdomAsiya Javayant QUALIFIED
Rodrigues CampainItalyIoni Bowcher PROPOSAL
Arvin AlbaresArgentinaAnna Fali NEW
Deepesh ChuiArgentinaIoni Bowcher PROPOSAL
Claire TollnerGermanyAnna Fali NEGOTIATION
Munro FerenczJapanStephen Shaw UNQUALIFIED
Stacey MacleadItalyAsiya Javayant PROPOSAL
Mayumi KolmetzItalyAmy Elsner RENEWAL
Aditya KuskoCanadaAsiya Javayant NEGOTIATION
Jones VocelkaUnited KingdomElwin Sharvill UNQUALIFIED
Antonio CaudyUnited KingdomAsiya Javayant UNQUALIFIED
Juan WieserIndiaBernardo Dominic NEGOTIATION
Izzy GarufiGermanyIvan Magalhaes NEGOTIATION
Morrow RutaRussiaAnna Fali QUALIFIED
Nicolas IturbideArgentinaStephen Shaw RENEWAL
Julie StensethCanadaOnyama Limba NEW
Izzy GarufiArgentinaAmy Elsner UNQUALIFIED
Stacey MacleadItalyAsiya Javayant NEW
Jefferson SchemmerItalyIoni Bowcher QUALIFIED
Alejandro PerinFranceAsiya Javayant RENEWAL
Aditya KuskoCanadaAnna Fali NEW
Salvatore StockhamJapanIvan Magalhaes NEW
Octavia MaletItalyStephen Shaw NEW
Aruna FigeroaUnited KingdomIvan Magalhaes RENEWAL
Cody SaylorsRussiaAmy Elsner QUALIFIED
Jeanfrancois VenereUnited KingdomAmy Elsner PROPOSAL
Tony FollerSpainIvan Magalhaes RENEWAL
Rodrigues CampainBrazilStephen Shaw UNQUALIFIED
Julie StensethUnited KingdomElwin Sharvill RENEWAL
Aditya KuskoIndiaIvan Magalhaes PROPOSAL
Maisha RulapaughUnited KingdomAmy Elsner QUALIFIED
Smith GlickArgentinaBernardo Dominic QUALIFIED
Arvin AlbaresIndiaAnna Fali PROPOSAL
Aditya KuskoBrazilXuxue Feng RENEWAL
Cody SaylorsIndiaStephen Shaw RENEWAL
Clifford RimItalyOnyama Limba QUALIFIED
Nicolas IturbideFranceIoni Bowcher PROPOSAL
Murillo MaletJapanAmy Elsner QUALIFIED
Ivar PaprockiJapanElwin Sharvill PROPOSAL
Greenwood BologniaJapanElwin Sharvill NEW
Alejandro PerinArgentinaAmy Elsner QUALIFIED
Costa DilliardRussiaXuxue Feng QUALIFIED
Johnson SergiRussiaAmy Elsner NEW
Jeanfrancois VenereSpainElwin Sharvill RENEWAL
Adams MorascaUnited KingdomIvan Magalhaes QUALIFIED
Frozen Columns
Name
Chavez Briddick
Munro Ferencz
Alejandro Perin
Morrow Ruta
Maria Marrier
Maisha Rulapaugh
Maisha Rulapaugh
Costa Dilliard
Faith Gillian
Smith Glick
Leon Oldroyd
Silvio Slusarski
Jeanfrancois Venere
Silvio Slusarski
Alejandro Perin
Aika Inouye
Silvio Slusarski
Mujtaba Nicka
Chavez Briddick
Salvatore Stockham
Mujtaba Nicka
Costa Dilliard
Francesco Shinko
Izzy Garufi
Misaki Royster
Mujtaba Nicka
Salvatore Stockham
Rodrigues Campain
Stacey Maclead
Alejandro Perin
Greenwood Bolognia
James Butt
Faith Gillian
Greenwood Bolognia
Wickens Nestle
Jennifer Amigon
Tony Foller
Kaitlin Ostrosky
Deepesh Chui
Johnson Sergi
Morrow Ruta
Ashley Doe
Claire Tollner
Salvatore Stockham
Octavia Malet
Claire Tollner
Aruna Figeroa
Mayumi Kolmetz
Ashley Doe
Leja Caldarera
IdCountryDate
1000United Kingdom2026-05-23
1001Spain2026-05-10
1002Australia2026-05-05
1003Canada2026-04-26
1004France2026-05-13
1005Australia2026-04-30
1006Japan2026-05-13
1007Japan2026-05-11
1008Spain2026-05-18
1009Germany2026-04-26
1010Australia2026-04-28
1011Japan2026-04-28
1012Australia2026-05-12
1013Brazil2026-05-21
1014Canada2026-05-05
1015Japan2026-05-11
1016France2026-05-09
1017Japan2026-05-01
1018United Kingdom2026-04-28
1019Spain2026-04-27
1020Japan2026-05-15
1021Australia2026-05-02
1022France2026-05-21
1023Canada2026-05-10
1024India2026-05-02
1025Russia2026-05-09
1026Australia2026-05-23
1027India2026-04-25
1028Argentina2026-05-24
1029Brazil2026-04-27
1030Germany2026-05-18
1031Italy2026-04-29
1032Australia2026-05-05
1033Italy2026-05-11
1034India2026-04-29
1035France2026-05-12
1036Germany2026-05-20
1037United Kingdom2026-05-12
1038United Kingdom2026-05-24
1039Brazil2026-05-06
1040Spain2026-05-16
1041France2026-05-07
1042Russia2026-05-14
1043Spain2026-05-18
1044United Kingdom2026-04-26
1045Canada2026-05-15
1046Canada2026-05-16
1047United Kingdom2026-04-25
1048Germany2026-04-26
1049India2026-05-23

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000Russia2026-05-01
Stacey Maclead1001Italy2026-04-27
Jeanfrancois Venere1002Canada2026-05-10
Darci Poquette1003Spain2026-05-09
Maria Marrier1004Brazil2026-05-06
Rodrigues Campain1005Italy2026-05-16
Maisha Rulapaugh1006Germany2026-05-14
Faith Gillian1007Australia2026-05-13
Wickens Nestle1008Italy2026-05-08
Claire Tollner1009Germany2026-05-03
Mujtaba Nicka1010Spain2026-05-22
Clifford Rim1011Canada2026-04-28
Kadeem Flosi1012Canada2026-04-28
Antonio Caudy1013Russia2026-05-21
Cody Saylors1014Australia2026-05-05
Jefferson Schemmer1015Brazil2026-05-17
Jones Vocelka1016France2026-05-03
Julie Stenseth1017Italy2026-05-21
Leja Caldarera1018Australia2026-05-04
Misaki Royster1019Spain2026-05-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Emily WhobreyItalyIvan Magalhaes QUALIFIED
Rodrigues CampainRussiaBernardo Dominic QUALIFIED
James ButtRussiaIoni Bowcher UNQUALIFIED
Murillo MaletFranceAnna Fali PROPOSAL
Munro FerenczUnited KingdomStephen Shaw UNQUALIFIED
Morrow RutaSpainAsiya Javayant QUALIFIED
Jones VocelkaIndiaAnna Fali NEW
Wickens NestleArgentinaIvan Magalhaes UNQUALIFIED
Cody SaylorsBrazilAsiya Javayant QUALIFIED
Izzy GarufiGermanyXuxue Feng NEGOTIATION
Clifford RimIndiaAnna Fali NEW
Munro FerenczUnited KingdomAmy Elsner RENEWAL
Salvatore StockhamSpainAsiya Javayant QUALIFIED
Aditya KuskoAustraliaStephen Shaw NEGOTIATION
Darci PoquetteArgentinaStephen Shaw NEW
Morrow RutaFranceElwin Sharvill NEW
Izzy GarufiAustraliaOnyama Limba NEGOTIATION
Misaki RoysterSpainAnna Fali RENEWAL
Darci PoquetteRussiaAnna Fali QUALIFIED
Silvio SlusarskiJapanOnyama Limba NEW
Julie StensethBrazilAmy Elsner NEW
Aditya KuskoGermanyElwin Sharvill UNQUALIFIED
Izzy GarufiIndiaStephen Shaw NEGOTIATION
Julie StensethItalyOnyama Limba NEGOTIATION
Cody SaylorsRussiaIvan Magalhaes UNQUALIFIED
Antonio CaudyAustraliaAnna Fali PROPOSAL
Chavez BriddickFranceXuxue Feng RENEWAL
Kaitlin OstroskyCanadaIoni Bowcher QUALIFIED
Adams MorascaUnited KingdomXuxue Feng UNQUALIFIED
Jones VocelkaArgentinaAsiya Javayant NEGOTIATION
Darci PoquetteItalyAnna Fali NEGOTIATION
Jeanfrancois VenereCanadaOnyama Limba RENEWAL
Silvio SlusarskiSpainOnyama Limba PROPOSAL
Kaitlin OstroskySpainAsiya Javayant RENEWAL
Nicolas IturbideAustraliaOnyama Limba NEW
Silvio SlusarskiItalyElwin Sharvill RENEWAL
Tony FollerArgentinaIvan Magalhaes QUALIFIED
Nicolas IturbideAustraliaXuxue Feng PROPOSAL
Nicolas IturbideAustraliaAmy Elsner QUALIFIED
Julie StensethUnited KingdomAnna Fali RENEWAL

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