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
Faith GillianGermanyAsiya Javayant NEGOTIATION
Costa DilliardRussiaBernardo Dominic UNQUALIFIED
Tony FollerUnited KingdomAnna Fali PROPOSAL
Mayumi KolmetzBrazilBernardo Dominic PROPOSAL
Emily WhobreyItalyXuxue Feng UNQUALIFIED
Claire TollnerFranceBernardo Dominic PROPOSAL
Jones VocelkaGermanyElwin Sharvill PROPOSAL
Jefferson SchemmerAustraliaAmy Elsner PROPOSAL
Darci PoquetteBrazilAmy Elsner UNQUALIFIED
Aditya KuskoBrazilAmy Elsner PROPOSAL
Aditya KuskoGermanyAsiya Javayant NEW
Aditya KuskoUnited KingdomAmy Elsner NEW
Faith GillianSpainAsiya Javayant UNQUALIFIED
Izzy GarufiBrazilStephen Shaw UNQUALIFIED
Ricardo GauchoAustraliaIoni Bowcher UNQUALIFIED
Leja CaldareraJapanAsiya Javayant PROPOSAL
Cody SaylorsUnited KingdomAsiya Javayant NEGOTIATION
Maria MarrierCanadaBernardo Dominic NEW
Aditya KuskoRussiaStephen Shaw UNQUALIFIED
Silvio SlusarskiJapanXuxue Feng PROPOSAL
Munro FerenczAustraliaAnna Fali QUALIFIED
Silvio SlusarskiArgentinaAnna Fali QUALIFIED
Johnson SergiItalyIoni Bowcher NEW
Cody SaylorsJapanStephen Shaw PROPOSAL
Kadeem FlosiCanadaStephen Shaw QUALIFIED
Rodrigues CampainAustraliaElwin Sharvill NEW
Salvatore StockhamItalyIoni Bowcher UNQUALIFIED
Greenwood BologniaGermanyAsiya Javayant NEGOTIATION
Claire TollnerJapanAsiya Javayant QUALIFIED
Costa DilliardFranceOnyama Limba NEGOTIATION
Antonio CaudyBrazilIoni Bowcher RENEWAL
Claire TollnerUnited KingdomAnna Fali NEW
Ivar PaprockiAustraliaAnna Fali UNQUALIFIED
Misaki RoysterRussiaAmy Elsner RENEWAL
Antonio CaudyGermanyIvan Magalhaes NEGOTIATION
Francesco ShinkoUnited KingdomXuxue Feng RENEWAL
Tony FollerCanadaAsiya Javayant NEGOTIATION
Jones VocelkaUnited KingdomIvan Magalhaes UNQUALIFIED
Julie StensethUnited KingdomIoni Bowcher RENEWAL
Claire TollnerCanadaIoni Bowcher NEW
Claire TollnerUnited KingdomAsiya Javayant NEW
Jones VocelkaItalyIoni Bowcher PROPOSAL
Aditya KuskoSpainAsiya Javayant RENEWAL
Aika InouyeGermanyStephen Shaw PROPOSAL
Maria MarrierIndiaAsiya Javayant RENEWAL
Greenwood BologniaUnited KingdomAmy Elsner UNQUALIFIED
Juan WieserUnited KingdomXuxue Feng RENEWAL
Murillo MaletGermanyAnna Fali UNQUALIFIED
Ashley DoeUnited KingdomOnyama Limba NEGOTIATION
Faith GillianCanadaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Juan WieserArgentinaStephen Shaw NEGOTIATION
Aruna FigeroaFranceXuxue Feng QUALIFIED
Sinclair WaycottSpainBernardo Dominic UNQUALIFIED
Munro FerenczIndiaAsiya Javayant UNQUALIFIED
Claire TollnerRussiaIoni Bowcher PROPOSAL
Nicolas IturbideAustraliaOnyama Limba UNQUALIFIED
Alejandro PerinBrazilAnna Fali NEGOTIATION
Nicolas IturbideUnited KingdomAnna Fali NEGOTIATION
Kaitlin OstroskyRussiaAmy Elsner QUALIFIED
Sinclair WaycottArgentinaElwin Sharvill NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000James ButtArgentina2026-05-05Commercial Press UNQUALIFIED1Asiya Javayant
1001Kadeem FlosiSpain2026-05-08Rangoni Of Florence UNQUALIFIED89Amy Elsner
1002Maria MarrierItaly2026-04-17Feiner Bros NEGOTIATION42Stephen Shaw
1003Maria MarrierAustralia2026-04-23Chemel, James L Cpa PROPOSAL42Asiya Javayant
1004Kadeem FlosiBrazil2026-05-08Chanay, Jeffrey A Esq QUALIFIED37Onyama Limba
1005Adams MorascaAustralia2026-05-08Feltz Printing Service RENEWAL64Xuxue Feng
1006Leon OldroydCanada2026-04-19Rousseaux, Michael Esq PROPOSAL77Anna Fali
1007Arvin AlbaresAustralia2026-05-06Chemel, James L Cpa UNQUALIFIED32Ioni Bowcher
1008Francesco ShinkoAustralia2026-05-09Chanay, Jeffrey A Esq PROPOSAL32Anna Fali
1009Ivar PaprockiItaly2026-05-12Feiner Bros UNQUALIFIED8Ivan Magalhaes
1010Jeanfrancois VenereSpain2026-05-06Dorl, James J Esq QUALIFIED39Ioni Bowcher
1011Francesco ShinkoUnited Kingdom2026-04-22Truhlar And Truhlar Attys PROPOSAL99Elwin Sharvill
1012Morrow RutaIndia2026-05-04Morlong Associates NEW10Asiya Javayant
1013Mujtaba NickaGermany2026-05-02Rousseaux, Michael Esq UNQUALIFIED67Stephen Shaw
1014Juan WieserAustralia2026-05-03Printing Dimensions QUALIFIED9Elwin Sharvill
1015Sinclair WaycottJapan2026-05-13Buckley Miller Wright UNQUALIFIED82Onyama Limba
1016Misaki RoysterIndia2026-05-03Morlong Associates UNQUALIFIED44Ivan Magalhaes
1017Misaki RoysterCanada2026-04-14Morlong Associates RENEWAL84Ivan Magalhaes
1018Izzy GarufiCanada2026-04-20Rangoni Of Florence NEGOTIATION75Amy Elsner
1019Johnson SergiGermany2026-04-29Feltz Printing Service PROPOSAL12Amy Elsner
1020Francesco ShinkoItaly2026-04-22Morlong Associates QUALIFIED78Onyama Limba
1021Silvio SlusarskiAustralia2026-05-11Commercial Press UNQUALIFIED98Asiya Javayant
1022Kaitlin OstroskyArgentina2026-04-19Chanay, Jeffrey A Esq PROPOSAL5Asiya Javayant
1023Nicolas IturbideUnited Kingdom2026-04-22Buckley Miller Wright QUALIFIED41Bernardo Dominic
1024Ivar PaprockiBrazil2026-05-05Commercial Press QUALIFIED89Stephen Shaw
1025Octavia MaletItaly2026-05-01Dorl, James J Esq PROPOSAL24Onyama Limba
1026Murillo MaletJapan2026-05-07Chanay, Jeffrey A Esq NEW18Bernardo Dominic
1027Johnson SergiFrance2026-04-20Printing Dimensions RENEWAL16Onyama Limba
1028Aika InouyeRussia2026-05-01Feiner Bros NEW5Xuxue Feng
1029Jeanfrancois VenereFrance2026-04-19Morlong Associates NEW56Onyama Limba
1030Izzy GarufiRussia2026-04-27Feltz Printing Service PROPOSAL18Ioni Bowcher
1031Deepesh ChuiItaly2026-04-21Chanay, Jeffrey A Esq UNQUALIFIED1Ivan Magalhaes
1032Jennifer AmigonItaly2026-05-04Commercial Press RENEWAL28Asiya Javayant
1033Wickens NestleAustralia2026-05-13Chanay, Jeffrey A Esq PROPOSAL78Ioni Bowcher
1034Chavez BriddickIndia2026-04-15Truhlar And Truhlar Attys PROPOSAL51Ivan Magalhaes
1035Ashley DoeItaly2026-05-13Chanay, Jeffrey A Esq NEGOTIATION60Onyama Limba
1036Greenwood BologniaIndia2026-04-22Feiner Bros QUALIFIED94Xuxue Feng
1037Clifford RimUnited Kingdom2026-05-02Commercial Press RENEWAL98Bernardo Dominic
1038James ButtRussia2026-04-26Printing Dimensions NEW44Stephen Shaw
1039Smith GlickIndia2026-04-17Buckley Miller Wright PROPOSAL71Asiya Javayant
1040Claire TollnerArgentina2026-05-12Chemel, James L Cpa PROPOSAL43Stephen Shaw
1041Jones VocelkaUnited Kingdom2026-05-10Feiner Bros RENEWAL48Ivan Magalhaes
1042Emily WhobreyRussia2026-05-05Rousseaux, Michael Esq RENEWAL39Amy Elsner
1043Nicolas IturbideJapan2026-05-04Rangoni Of Florence NEW26Ioni Bowcher
1044Jeanfrancois VenereRussia2026-04-18Printing Dimensions QUALIFIED50Ivan Magalhaes
1045Arvin AlbaresBrazil2026-05-09Commercial Press NEW44Asiya Javayant
1046Aika InouyeRussia2026-05-03Morlong Associates PROPOSAL95Asiya Javayant
1047Sinclair WaycottRussia2026-04-21King, Christopher A Esq QUALIFIED50Anna Fali
1048David DarakjyItaly2026-04-23Chanay, Jeffrey A Esq RENEWAL47Ivan Magalhaes
1049Chavez BriddickGermany2026-04-29Benton, John B Jr NEGOTIATION45Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Nicolas IturbideJapanAsiya Javayant NEGOTIATION
Salvatore StockhamAustraliaBernardo Dominic NEGOTIATION
Stacey MacleadRussiaBernardo Dominic NEGOTIATION
Kaitlin OstroskyCanadaAsiya Javayant RENEWAL
Stacey MacleadSpainElwin Sharvill NEW
Clifford RimGermanyBernardo Dominic QUALIFIED
Misaki RoysterItalyBernardo Dominic PROPOSAL
Maisha RulapaughJapanAsiya Javayant PROPOSAL
Morrow RutaItalyAmy Elsner NEGOTIATION
Deepesh ChuiArgentinaAmy Elsner NEGOTIATION
Aika InouyeArgentinaBernardo Dominic NEW
Julie StensethIndiaOnyama Limba QUALIFIED
Julie StensethUnited KingdomAsiya Javayant RENEWAL
Murillo MaletRussiaAsiya Javayant PROPOSAL
Aika InouyeGermanyElwin Sharvill NEGOTIATION
Jefferson SchemmerUnited KingdomAnna Fali UNQUALIFIED
Jones VocelkaIndiaAsiya Javayant UNQUALIFIED
Munro FerenczAustraliaAsiya Javayant RENEWAL
Sinclair WaycottAustraliaIoni Bowcher PROPOSAL
Leja CaldareraIndiaIvan Magalhaes QUALIFIED
Smith GlickArgentinaOnyama Limba QUALIFIED
Arvin AlbaresIndiaAnna Fali UNQUALIFIED
Mujtaba NickaAustraliaAsiya Javayant RENEWAL
Wickens NestleAustraliaBernardo Dominic PROPOSAL
Morrow RutaArgentinaOnyama Limba RENEWAL
Sinclair WaycottCanadaOnyama Limba NEGOTIATION
Wickens NestleUnited KingdomAnna Fali UNQUALIFIED
Kadeem FlosiArgentinaStephen Shaw PROPOSAL
Munro FerenczFranceAmy Elsner QUALIFIED
Wickens NestleSpainIoni Bowcher NEW
James ButtGermanyBernardo Dominic NEGOTIATION
Deepesh ChuiUnited KingdomAmy Elsner NEGOTIATION
Mujtaba NickaIndiaIoni Bowcher RENEWAL
Izzy GarufiSpainXuxue Feng NEW
Aruna FigeroaItalyBernardo Dominic PROPOSAL
Salvatore StockhamSpainBernardo Dominic NEGOTIATION
Cody SaylorsCanadaOnyama Limba QUALIFIED
Juan WieserRussiaElwin Sharvill NEGOTIATION
Adams MorascaRussiaIoni Bowcher RENEWAL
Misaki RoysterItalyBernardo Dominic NEGOTIATION
Jeanfrancois VenereItalyIvan Magalhaes UNQUALIFIED
Aruna FigeroaSpainXuxue Feng NEW
Morrow RutaGermanyAnna Fali PROPOSAL
Morrow RutaBrazilStephen Shaw UNQUALIFIED
Isabel BowleyItalyIoni Bowcher UNQUALIFIED
Salvatore StockhamAustraliaXuxue Feng QUALIFIED
Julie StensethJapanAsiya Javayant PROPOSAL
Wickens NestleBrazilStephen Shaw RENEWAL
Greenwood BologniaUnited KingdomAsiya Javayant UNQUALIFIED
Jeanfrancois VenereArgentinaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Clifford Rim
Mayumi Kolmetz
Munro Ferencz
Murillo Malet
Mayumi Kolmetz
Greenwood Bolognia
Francesco Shinko
Maisha Rulapaugh
Julie Stenseth
Juan Wieser
Maisha Rulapaugh
Misaki Royster
Ivar Paprocki
Deepesh Chui
Smith Glick
Aika Inouye
Jeanfrancois Venere
Morrow Ruta
Tony Foller
Deepesh Chui
Murillo Malet
Juan Wieser
Jefferson Schemmer
Deepesh Chui
Leja Caldarera
Munro Ferencz
Maisha Rulapaugh
Smith Glick
Antonio Caudy
Jennifer Amigon
Deepesh Chui
Smith Glick
Claire Tollner
Kadeem Flosi
Silvio Slusarski
Silvio Slusarski
Julie Stenseth
Mujtaba Nicka
Murillo Malet
Stacey Maclead
James Butt
Smith Glick
James Butt
Leon Oldroyd
Francesco Shinko
Darci Poquette
Smith Glick
Julie Stenseth
Aditya Kusko
Julie Stenseth
IdCountryDate
1000Canada2026-04-23
1001Japan2026-04-29
1002Japan2026-05-06
1003Japan2026-05-01
1004Germany2026-04-19
1005United Kingdom2026-04-26
1006Australia2026-05-04
1007Canada2026-04-25
1008Italy2026-05-06
1009Germany2026-04-19
1010France2026-04-19
1011Australia2026-04-30
1012Canada2026-05-01
1013Australia2026-04-25
1014United Kingdom2026-05-04
1015Russia2026-05-13
1016Canada2026-04-26
1017Germany2026-04-24
1018Germany2026-04-21
1019Canada2026-04-30
1020Italy2026-05-06
1021United Kingdom2026-05-05
1022Canada2026-04-30
1023Japan2026-04-17
1024Canada2026-04-25
1025India2026-05-05
1026Argentina2026-05-06
1027Brazil2026-04-25
1028Germany2026-04-29
1029Australia2026-04-26
1030Spain2026-05-13
1031Spain2026-04-17
1032France2026-05-05
1033Brazil2026-05-02
1034United Kingdom2026-05-06
1035Australia2026-04-14
1036Australia2026-05-04
1037Australia2026-05-11
1038Russia2026-04-18
1039Argentina2026-04-20
1040Italy2026-05-04
1041Brazil2026-04-27
1042Argentina2026-04-30
1043Brazil2026-04-29
1044Brazil2026-04-30
1045Italy2026-05-11
1046Italy2026-04-29
1047Canada2026-04-17
1048India2026-04-17
1049United Kingdom2026-05-10

On-Demand Data

NameIdCountryDate
Jennifer Amigon1000Russia2026-05-09
Jennifer Amigon1001Brazil2026-04-17
Maisha Rulapaugh1002Canada2026-05-07
Johnson Sergi1003Argentina2026-05-01
Jeanfrancois Venere1004Italy2026-04-26
Rodrigues Campain1005Russia2026-05-01
Jones Vocelka1006Spain2026-05-06
Wickens Nestle1007India2026-04-29
Stacey Maclead1008Japan2026-05-04
Wickens Nestle1009Japan2026-04-21
Mayumi Kolmetz1010France2026-05-05
Jones Vocelka1011France2026-04-17
Antonio Caudy1012India2026-05-09
Francesco Shinko1013United Kingdom2026-04-27
Izzy Garufi1014Germany2026-05-03
Faith Gillian1015Spain2026-04-15
Maria Marrier1016Italy2026-04-22
Arvin Albares1017Italy2026-05-01
Aika Inouye1018Spain2026-04-25
Chavez Briddick1019Japan2026-04-26
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Ivar PaprockiItalyAnna Fali NEGOTIATION
Antonio CaudyJapanAsiya Javayant NEGOTIATION
Johnson SergiArgentinaStephen Shaw NEW
Kadeem FlosiCanadaBernardo Dominic NEW
Munro FerenczItalyAsiya Javayant RENEWAL
Kadeem FlosiCanadaIoni Bowcher RENEWAL
Chavez BriddickUnited KingdomAmy Elsner RENEWAL
Jennifer AmigonArgentinaAmy Elsner RENEWAL
David DarakjyUnited KingdomBernardo Dominic RENEWAL
Munro FerenczFranceStephen Shaw QUALIFIED
Kaitlin OstroskyGermanyXuxue Feng QUALIFIED
Aruna FigeroaIndiaIvan Magalhaes PROPOSAL
James ButtGermanyIvan Magalhaes NEGOTIATION
Mujtaba NickaArgentinaIoni Bowcher QUALIFIED
Jones VocelkaItalyAnna Fali PROPOSAL
Arvin AlbaresAustraliaBernardo Dominic RENEWAL
Ashley DoeArgentinaIvan Magalhaes RENEWAL
Adams MorascaIndiaBernardo Dominic NEW
Isabel BowleyCanadaXuxue Feng UNQUALIFIED
Octavia MaletJapanStephen Shaw UNQUALIFIED
Isabel BowleyGermanyStephen Shaw NEGOTIATION
Emily WhobreyFranceAnna Fali NEW
Francesco ShinkoFranceOnyama Limba NEGOTIATION
Morrow RutaGermanyAsiya Javayant NEW
Adams MorascaFranceBernardo Dominic UNQUALIFIED
Octavia MaletArgentinaElwin Sharvill UNQUALIFIED
Aruna FigeroaBrazilIvan Magalhaes UNQUALIFIED
Aika InouyeAustraliaAnna Fali QUALIFIED
Jones VocelkaJapanOnyama Limba NEGOTIATION
Jennifer AmigonUnited KingdomElwin Sharvill UNQUALIFIED
Chavez BriddickGermanyOnyama Limba NEW
Kaitlin OstroskyFranceAnna Fali NEGOTIATION
Ashley DoeAustraliaXuxue Feng PROPOSAL
Salvatore StockhamIndiaElwin Sharvill RENEWAL
Aruna FigeroaAustraliaAnna Fali RENEWAL
Munro FerenczCanadaStephen Shaw RENEWAL
Morrow RutaUnited KingdomBernardo Dominic RENEWAL
Costa DilliardIndiaOnyama Limba UNQUALIFIED
Tony FollerCanadaElwin Sharvill UNQUALIFIED
Rodrigues CampainArgentinaAnna Fali NEW

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