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
Kadeem FlosiArgentinaStephen Shaw UNQUALIFIED
Julie StensethCanadaElwin Sharvill UNQUALIFIED
Mujtaba NickaArgentinaXuxue Feng UNQUALIFIED
Francesco ShinkoUnited KingdomIvan Magalhaes UNQUALIFIED
Jefferson SchemmerItalyOnyama Limba QUALIFIED
Jones VocelkaGermanyAmy Elsner UNQUALIFIED
Maria MarrierItalyBernardo Dominic QUALIFIED
Cody SaylorsGermanyElwin Sharvill NEW
Rodrigues CampainCanadaIoni Bowcher NEGOTIATION
Jones VocelkaItalyBernardo Dominic NEW
Leon OldroydSpainOnyama Limba NEGOTIATION
Smith GlickBrazilAnna Fali RENEWAL
Misaki RoysterIndiaXuxue Feng PROPOSAL
Ivar PaprockiArgentinaXuxue Feng NEW
Deepesh ChuiAustraliaAnna Fali PROPOSAL
Munro FerenczCanadaIvan Magalhaes QUALIFIED
Arvin AlbaresArgentinaElwin Sharvill NEW
Chavez BriddickAustraliaAmy Elsner NEW
Maria MarrierBrazilStephen Shaw QUALIFIED
Smith GlickCanadaAnna Fali QUALIFIED
Wickens NestleIndiaOnyama Limba NEW
Greenwood BologniaRussiaIvan Magalhaes NEGOTIATION
Leon OldroydJapanXuxue Feng RENEWAL
Claire TollnerIndiaBernardo Dominic NEGOTIATION
Johnson SergiGermanyAsiya Javayant RENEWAL
Isabel BowleyJapanBernardo Dominic PROPOSAL
Munro FerenczCanadaAnna Fali PROPOSAL
Clifford RimUnited KingdomXuxue Feng NEW
Tony FollerBrazilAsiya Javayant UNQUALIFIED
Smith GlickGermanyStephen Shaw NEW
David DarakjyUnited KingdomAnna Fali NEW
Maria MarrierIndiaIvan Magalhaes NEW
Octavia MaletCanadaOnyama Limba NEW
Jennifer AmigonAustraliaIvan Magalhaes UNQUALIFIED
Antonio CaudyItalyAsiya Javayant PROPOSAL
Mujtaba NickaIndiaElwin Sharvill NEGOTIATION
David DarakjyBrazilAnna Fali NEGOTIATION
Alejandro PerinCanadaElwin Sharvill UNQUALIFIED
Izzy GarufiItalyBernardo Dominic UNQUALIFIED
Ashley DoeJapanBernardo Dominic UNQUALIFIED
Aditya KuskoIndiaElwin Sharvill RENEWAL
Wickens NestleItalyAmy Elsner PROPOSAL
Costa DilliardJapanOnyama Limba QUALIFIED
Morrow RutaFranceAsiya Javayant RENEWAL
Jones VocelkaCanadaIoni Bowcher UNQUALIFIED
Arvin AlbaresRussiaIoni Bowcher UNQUALIFIED
Leon OldroydAustraliaElwin Sharvill RENEWAL
Tony FollerSpainAmy Elsner QUALIFIED
Munro FerenczBrazilIvan Magalhaes NEGOTIATION
Sinclair WaycottUnited KingdomAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Costa DilliardArgentinaOnyama Limba UNQUALIFIED
Salvatore StockhamGermanyOnyama Limba PROPOSAL
Francesco ShinkoItalyBernardo Dominic UNQUALIFIED
Kadeem FlosiBrazilOnyama Limba UNQUALIFIED
Adams MorascaItalyAsiya Javayant NEGOTIATION
Johnson SergiSpainStephen Shaw NEGOTIATION
Jefferson SchemmerGermanyAsiya Javayant QUALIFIED
Chavez BriddickRussiaElwin Sharvill PROPOSAL
Mayumi KolmetzBrazilAsiya Javayant UNQUALIFIED
Izzy GarufiGermanyAnna Fali NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar PaprockiAustralia2026-05-13Rousseaux, Michael Esq UNQUALIFIED93Anna Fali
1001Nicolas IturbideArgentina2026-05-04Printing Dimensions PROPOSAL95Amy Elsner
1002Munro FerenczIndia2026-05-19Buckley Miller Wright QUALIFIED71Bernardo Dominic
1003Salvatore StockhamRussia2026-05-19Commercial Press QUALIFIED83Xuxue Feng
1004Maisha RulapaughRussia2026-05-03Chemel, James L Cpa NEGOTIATION90Asiya Javayant
1005Sinclair WaycottRussia2026-05-14Printing Dimensions RENEWAL52Elwin Sharvill
1006Aditya KuskoCanada2026-05-13Truhlar And Truhlar Attys RENEWAL34Stephen Shaw
1007Adams MorascaArgentina2026-05-13Morlong Associates UNQUALIFIED61Ioni Bowcher
1008Smith GlickIndia2026-04-29Chanay, Jeffrey A Esq UNQUALIFIED98Asiya Javayant
1009Arvin AlbaresBrazil2026-04-27Buckley Miller Wright RENEWAL72Elwin Sharvill
1010Chavez BriddickUnited Kingdom2026-05-04Benton, John B Jr PROPOSAL85Onyama Limba
1011Francesco ShinkoBrazil2026-04-24Chemel, James L Cpa UNQUALIFIED15Bernardo Dominic
1012Ashley DoeIndia2026-04-24Commercial Press RENEWAL65Anna Fali
1013Wickens NestleIndia2026-05-07Feltz Printing Service UNQUALIFIED70Amy Elsner
1014Stacey MacleadItaly2026-05-16Buckley Miller Wright UNQUALIFIED41Bernardo Dominic
1015Chavez BriddickSpain2026-05-12Chanay, Jeffrey A Esq PROPOSAL42Bernardo Dominic
1016Wickens NestleAustralia2026-04-28Truhlar And Truhlar Attys PROPOSAL43Ivan Magalhaes
1017Izzy GarufiJapan2026-05-04Truhlar And Truhlar Attys NEGOTIATION45Elwin Sharvill
1018Costa DilliardAustralia2026-05-19Buckley Miller Wright UNQUALIFIED25Amy Elsner
1019Emily WhobreySpain2026-05-14Truhlar And Truhlar Attys QUALIFIED85Xuxue Feng
1020Emily WhobreyRussia2026-04-28Printing Dimensions QUALIFIED65Asiya Javayant
1021Maisha RulapaughJapan2026-05-18Truhlar And Truhlar Attys PROPOSAL38Xuxue Feng
1022Costa DilliardAustralia2026-04-24Truhlar And Truhlar Attys RENEWAL98Xuxue Feng
1023Kaitlin OstroskySpain2026-05-13Truhlar And Truhlar Attys QUALIFIED52Elwin Sharvill
1024Antonio CaudyUnited Kingdom2026-05-10Truhlar And Truhlar Attys QUALIFIED32Ivan Magalhaes
1025Aditya KuskoItaly2026-05-16Commercial Press PROPOSAL72Amy Elsner
1026Tony FollerBrazil2026-05-09Morlong Associates NEGOTIATION76Asiya Javayant
1027Octavia MaletGermany2026-05-18Buckley Miller Wright QUALIFIED35Xuxue Feng
1028Munro FerenczFrance2026-05-06Feiner Bros NEGOTIATION80Anna Fali
1029Misaki RoysterGermany2026-04-28Buckley Miller Wright QUALIFIED48Ioni Bowcher
1030Maria MarrierFrance2026-05-07Feiner Bros NEGOTIATION97Asiya Javayant
1031Julie StensethArgentina2026-05-10Morlong Associates NEW64Ivan Magalhaes
1032Clifford RimJapan2026-04-24Chapman, Ross E Esq RENEWAL93Asiya Javayant
1033Nicolas IturbideArgentina2026-05-07King, Christopher A Esq NEW28Xuxue Feng
1034Ashley DoeSpain2026-05-09Chanay, Jeffrey A Esq NEW21Stephen Shaw
1035Munro FerenczCanada2026-05-06Chemel, James L Cpa RENEWAL96Ivan Magalhaes
1036Darci PoquetteRussia2026-05-10Commercial Press NEGOTIATION97Elwin Sharvill
1037Kadeem FlosiRussia2026-04-25Rangoni Of Florence NEGOTIATION35Onyama Limba
1038Isabel BowleySpain2026-05-04Chemel, James L Cpa PROPOSAL35Onyama Limba
1039Stacey MacleadIndia2026-05-03Printing Dimensions QUALIFIED25Ioni Bowcher
1040Misaki RoysterFrance2026-05-10Benton, John B Jr QUALIFIED10Elwin Sharvill
1041Juan WieserArgentina2026-04-24King, Christopher A Esq NEW25Ioni Bowcher
1042Cody SaylorsFrance2026-05-10Commercial Press NEW67Elwin Sharvill
1043Isabel BowleyCanada2026-05-22King, Christopher A Esq PROPOSAL52Asiya Javayant
1044Ashley DoeRussia2026-05-04Printing Dimensions NEGOTIATION65Onyama Limba
1045Maisha RulapaughUnited Kingdom2026-05-15Feltz Printing Service QUALIFIED42Ioni Bowcher
1046Stacey MacleadCanada2026-05-06Feiner Bros UNQUALIFIED98Bernardo Dominic
1047Aruna FigeroaBrazil2026-05-07Rangoni Of Florence QUALIFIED51Amy Elsner
1048Costa DilliardIndia2026-04-30Chapman, Ross E Esq QUALIFIED83Onyama Limba
1049Juan WieserCanada2026-05-19Truhlar And Truhlar Attys QUALIFIED35Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Juan WieserRussiaXuxue Feng NEW
Emily WhobreyGermanyAsiya Javayant QUALIFIED
Wickens NestleUnited KingdomIoni Bowcher NEW
Jones VocelkaRussiaXuxue Feng NEGOTIATION
Sinclair WaycottCanadaIoni Bowcher PROPOSAL
Jennifer AmigonSpainOnyama Limba PROPOSAL
Misaki RoysterJapanAnna Fali PROPOSAL
Jefferson SchemmerCanadaElwin Sharvill NEW
Jones VocelkaCanadaElwin Sharvill RENEWAL
Ricardo GauchoCanadaElwin Sharvill RENEWAL
Arvin AlbaresIndiaAsiya Javayant RENEWAL
Rodrigues CampainGermanyIoni Bowcher NEGOTIATION
Aruna FigeroaSpainIoni Bowcher RENEWAL
Maria MarrierGermanyAsiya Javayant NEGOTIATION
Deepesh ChuiAustraliaIvan Magalhaes PROPOSAL
Costa DilliardIndiaXuxue Feng NEGOTIATION
Jones VocelkaGermanyOnyama Limba NEGOTIATION
Mujtaba NickaBrazilElwin Sharvill PROPOSAL
Salvatore StockhamUnited KingdomOnyama Limba UNQUALIFIED
Morrow RutaCanadaAnna Fali UNQUALIFIED
Jennifer AmigonUnited KingdomBernardo Dominic RENEWAL
Murillo MaletCanadaOnyama Limba NEGOTIATION
Aruna FigeroaRussiaBernardo Dominic PROPOSAL
Cody SaylorsJapanAmy Elsner QUALIFIED
Deepesh ChuiGermanyStephen Shaw QUALIFIED
Clifford RimRussiaStephen Shaw RENEWAL
Aruna FigeroaAustraliaIoni Bowcher NEGOTIATION
Salvatore StockhamFranceIvan Magalhaes NEW
Johnson SergiIndiaAmy Elsner UNQUALIFIED
Nicolas IturbideItalyAnna Fali PROPOSAL
Jennifer AmigonAustraliaXuxue Feng QUALIFIED
Munro FerenczUnited KingdomAnna Fali QUALIFIED
Johnson SergiCanadaAnna Fali NEW
Tony FollerGermanyXuxue Feng PROPOSAL
Faith GillianGermanyAmy Elsner NEGOTIATION
Morrow RutaAustraliaXuxue Feng QUALIFIED
Alejandro PerinCanadaXuxue Feng RENEWAL
Costa DilliardIndiaStephen Shaw RENEWAL
Misaki RoysterFranceXuxue Feng NEGOTIATION
Aika InouyeSpainStephen Shaw NEW
David DarakjyAustraliaXuxue Feng NEW
Jeanfrancois VenereBrazilOnyama Limba UNQUALIFIED
Silvio SlusarskiFranceElwin Sharvill QUALIFIED
Chavez BriddickUnited KingdomIvan Magalhaes QUALIFIED
Wickens NestleGermanyXuxue Feng NEW
Stacey MacleadItalyAmy Elsner NEGOTIATION
Kadeem FlosiUnited KingdomIvan Magalhaes UNQUALIFIED
Jefferson SchemmerAustraliaIoni Bowcher UNQUALIFIED
Julie StensethJapanStephen Shaw PROPOSAL
Claire TollnerItalyXuxue Feng UNQUALIFIED
Frozen Columns
Name
Nicolas Iturbide
Leja Caldarera
Maisha Rulapaugh
Aditya Kusko
Juan Wieser
Salvatore Stockham
Mayumi Kolmetz
Silvio Slusarski
Murillo Malet
Julie Stenseth
Chavez Briddick
Jeanfrancois Venere
Morrow Ruta
Maisha Rulapaugh
Claire Tollner
Isabel Bowley
Wickens Nestle
Wickens Nestle
Juan Wieser
Tony Foller
Jeanfrancois Venere
Antonio Caudy
Ivar Paprocki
Wickens Nestle
Smith Glick
Darci Poquette
Ashley Doe
Isabel Bowley
Leon Oldroyd
Smith Glick
Leon Oldroyd
Misaki Royster
Chavez Briddick
Kaitlin Ostrosky
Greenwood Bolognia
Costa Dilliard
Chavez Briddick
Isabel Bowley
Aditya Kusko
Adams Morasca
Tony Foller
Greenwood Bolognia
Ashley Doe
Arvin Albares
Greenwood Bolognia
Johnson Sergi
Emily Whobrey
David Darakjy
Leja Caldarera
Leon Oldroyd
IdCountryDate
1000Russia2026-05-18
1001United Kingdom2026-05-18
1002Japan2026-04-28
1003Australia2026-04-29
1004Argentina2026-05-20
1005Germany2026-05-20
1006Germany2026-05-07
1007Canada2026-04-29
1008France2026-04-26
1009Argentina2026-04-29
1010Argentina2026-05-10
1011Canada2026-04-28
1012France2026-05-07
1013Italy2026-05-06
1014India2026-05-06
1015Argentina2026-04-29
1016Russia2026-05-06
1017United Kingdom2026-04-26
1018France2026-05-02
1019Germany2026-05-19
1020Germany2026-05-07
1021Canada2026-05-07
1022Japan2026-05-03
1023Brazil2026-05-17
1024France2026-05-14
1025United Kingdom2026-05-22
1026France2026-05-19
1027United Kingdom2026-05-20
1028United Kingdom2026-05-03
1029Russia2026-04-23
1030Brazil2026-05-01
1031Argentina2026-05-12
1032Russia2026-05-02
1033Argentina2026-05-08
1034Argentina2026-05-18
1035Germany2026-04-26
1036Japan2026-05-09
1037Argentina2026-04-24
1038Brazil2026-05-03
1039Germany2026-05-03
1040Japan2026-05-09
1041Argentina2026-04-28
1042Russia2026-05-11
1043Germany2026-05-13
1044Japan2026-05-07
1045Germany2026-05-21
1046United Kingdom2026-04-30
1047Italy2026-05-17
1048Japan2026-05-20
1049United Kingdom2026-04-27

On-Demand Data

NameIdCountryDate
Jeanfrancois Venere1000Italy2026-05-18
Emily Whobrey1001Argentina2026-05-18
Morrow Ruta1002Argentina2026-04-29
Adams Morasca1003United Kingdom2026-05-10
Emily Whobrey1004Germany2026-05-03
Cody Saylors1005Brazil2026-05-19
Munro Ferencz1006Germany2026-05-07
Clifford Rim1007Australia2026-05-17
Munro Ferencz1008Spain2026-04-24
Aruna Figeroa1009Argentina2026-05-17
Alejandro Perin1010Germany2026-05-19
Mayumi Kolmetz1011Canada2026-05-11
Maisha Rulapaugh1012United Kingdom2026-04-24
Mayumi Kolmetz1013Australia2026-05-14
Isabel Bowley1014Spain2026-05-03
Aruna Figeroa1015Italy2026-04-30
Arvin Albares1016Germany2026-04-23
Mayumi Kolmetz1017Argentina2026-05-08
Maria Marrier1018Italy2026-05-12
Cody Saylors1019United Kingdom2026-05-16
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Juan WieserIndiaXuxue Feng NEW
Leja CaldareraAustraliaAmy Elsner RENEWAL
Isabel BowleyJapanAmy Elsner NEW
Izzy GarufiItalyAsiya Javayant UNQUALIFIED
Jeanfrancois VenereFranceStephen Shaw RENEWAL
Isabel BowleyIndiaIoni Bowcher PROPOSAL
Kaitlin OstroskyGermanyXuxue Feng NEW
Clifford RimFranceAmy Elsner UNQUALIFIED
Antonio CaudyGermanyAsiya Javayant RENEWAL
Costa DilliardAustraliaStephen Shaw RENEWAL
Alejandro PerinBrazilIoni Bowcher NEGOTIATION
Misaki RoysterArgentinaBernardo Dominic NEW
Smith GlickArgentinaIoni Bowcher RENEWAL
Darci PoquetteBrazilXuxue Feng NEW
Morrow RutaGermanyStephen Shaw NEGOTIATION
Stacey MacleadRussiaBernardo Dominic QUALIFIED
Greenwood BologniaSpainIvan Magalhaes NEGOTIATION
Maisha RulapaughJapanBernardo Dominic PROPOSAL
Deepesh ChuiAustraliaAnna Fali PROPOSAL
Wickens NestleJapanBernardo Dominic RENEWAL
Sinclair WaycottJapanIvan Magalhaes QUALIFIED
Aditya KuskoGermanyAnna Fali RENEWAL
Clifford RimAustraliaAsiya Javayant UNQUALIFIED
Greenwood BologniaRussiaElwin Sharvill UNQUALIFIED
Ricardo GauchoArgentinaIvan Magalhaes RENEWAL
Emily WhobreyIndiaXuxue Feng PROPOSAL
Arvin AlbaresFranceStephen Shaw PROPOSAL
Tony FollerRussiaBernardo Dominic RENEWAL
Arvin AlbaresBrazilIvan Magalhaes QUALIFIED
Jeanfrancois VenereCanadaAnna Fali UNQUALIFIED
Greenwood BologniaJapanBernardo Dominic NEGOTIATION
Maria MarrierGermanyAnna Fali QUALIFIED
Maisha RulapaughSpainAmy Elsner UNQUALIFIED
Johnson SergiJapanOnyama Limba QUALIFIED
Misaki RoysterIndiaElwin Sharvill UNQUALIFIED
Leja CaldareraGermanyAnna Fali UNQUALIFIED
Leja CaldareraSpainElwin Sharvill UNQUALIFIED
Izzy GarufiUnited KingdomIoni Bowcher NEW
Leon OldroydArgentinaAmy Elsner NEGOTIATION
Jennifer AmigonRussiaXuxue Feng 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>