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
Maria MarrierUnited KingdomBernardo Dominic UNQUALIFIED
Morrow RutaFranceIoni Bowcher QUALIFIED
Morrow RutaAustraliaAnna Fali NEW
Arvin AlbaresUnited KingdomAsiya Javayant NEGOTIATION
Smith GlickFranceAmy Elsner PROPOSAL
Chavez BriddickUnited KingdomXuxue Feng NEGOTIATION
Deepesh ChuiSpainStephen Shaw PROPOSAL
Ashley DoeUnited KingdomOnyama Limba NEW
Antonio CaudySpainXuxue Feng PROPOSAL
Smith GlickBrazilAsiya Javayant UNQUALIFIED
Rodrigues CampainIndiaBernardo Dominic QUALIFIED
Morrow RutaIndiaAmy Elsner UNQUALIFIED
Wickens NestleFranceElwin Sharvill UNQUALIFIED
Costa DilliardJapanAnna Fali NEW
Octavia MaletIndiaAnna Fali RENEWAL
Cody SaylorsArgentinaStephen Shaw UNQUALIFIED
Chavez BriddickUnited KingdomStephen Shaw UNQUALIFIED
Arvin AlbaresRussiaAmy Elsner UNQUALIFIED
Ricardo GauchoArgentinaOnyama Limba PROPOSAL
Greenwood BologniaUnited KingdomStephen Shaw RENEWAL
Alejandro PerinAustraliaElwin Sharvill QUALIFIED
Octavia MaletAustraliaAnna Fali PROPOSAL
Jeanfrancois VenereCanadaAnna Fali RENEWAL
Jennifer AmigonItalyAsiya Javayant NEGOTIATION
Murillo MaletSpainIoni Bowcher PROPOSAL
Jones VocelkaFranceStephen Shaw QUALIFIED
Claire TollnerArgentinaBernardo Dominic NEGOTIATION
Emily WhobreyUnited KingdomIvan Magalhaes NEW
Isabel BowleyBrazilAnna Fali RENEWAL
Isabel BowleyIndiaBernardo Dominic PROPOSAL
Costa DilliardIndiaXuxue Feng NEW
Octavia MaletFranceAsiya Javayant PROPOSAL
Jones VocelkaGermanyXuxue Feng NEW
Octavia MaletCanadaElwin Sharvill RENEWAL
Francesco ShinkoIndiaAmy Elsner NEGOTIATION
Kadeem FlosiUnited KingdomBernardo Dominic NEGOTIATION
Munro FerenczBrazilAsiya Javayant QUALIFIED
Clifford RimCanadaAsiya Javayant UNQUALIFIED
Leon OldroydArgentinaStephen Shaw UNQUALIFIED
Sinclair WaycottUnited KingdomStephen Shaw PROPOSAL
David DarakjySpainAmy Elsner QUALIFIED
Nicolas IturbideSpainAmy Elsner QUALIFIED
Jennifer AmigonFranceAnna Fali NEGOTIATION
Sinclair WaycottAustraliaStephen Shaw PROPOSAL
Aditya KuskoIndiaAnna Fali QUALIFIED
Chavez BriddickAustraliaAsiya Javayant NEGOTIATION
Stacey MacleadArgentinaElwin Sharvill QUALIFIED
Chavez BriddickFranceAsiya Javayant NEW
Leon OldroydItalyElwin Sharvill QUALIFIED
Rodrigues CampainBrazilXuxue Feng PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Arvin AlbaresItalyElwin Sharvill QUALIFIED
Jefferson SchemmerUnited KingdomAnna Fali NEGOTIATION
Rodrigues CampainRussiaBernardo Dominic PROPOSAL
Kadeem FlosiRussiaStephen Shaw RENEWAL
Octavia MaletFranceOnyama Limba UNQUALIFIED
Antonio CaudySpainElwin Sharvill PROPOSAL
Izzy GarufiFranceStephen Shaw QUALIFIED
Izzy GarufiFranceElwin Sharvill RENEWAL
Leja CaldareraRussiaBernardo Dominic PROPOSAL
Claire TollnerRussiaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jones VocelkaAustralia2026-04-08King, Christopher A Esq NEW19Asiya Javayant
1001Maisha RulapaughItaly2026-04-04Rousseaux, Michael Esq UNQUALIFIED95Stephen Shaw
1002Emily WhobreyIndia2026-04-01Morlong Associates NEW5Ivan Magalhaes
1003Ashley DoeUnited Kingdom2026-04-16Feiner Bros NEW22Elwin Sharvill
1004Octavia MaletRussia2026-04-02Morlong Associates RENEWAL91Asiya Javayant
1005Rodrigues CampainRussia2026-03-24Feltz Printing Service NEW71Bernardo Dominic
1006Jeanfrancois VenereAustralia2026-03-27Chanay, Jeffrey A Esq NEGOTIATION49Amy Elsner
1007Alejandro PerinRussia2026-04-01Commercial Press NEGOTIATION19Ioni Bowcher
1008Clifford RimUnited Kingdom2026-04-08Truhlar And Truhlar Attys UNQUALIFIED63Elwin Sharvill
1009Deepesh ChuiUnited Kingdom2026-04-21Feiner Bros PROPOSAL70Stephen Shaw
1010Johnson SergiIndia2026-03-25Benton, John B Jr UNQUALIFIED26Anna Fali
1011Isabel BowleyCanada2026-03-24Commercial Press NEGOTIATION42Onyama Limba
1012Francesco ShinkoAustralia2026-04-10Printing Dimensions PROPOSAL12Bernardo Dominic
1013Jeanfrancois VenereCanada2026-04-11Chanay, Jeffrey A Esq PROPOSAL49Anna Fali
1014Maisha RulapaughItaly2026-04-16King, Christopher A Esq UNQUALIFIED56Anna Fali
1015Ricardo GauchoFrance2026-03-31Dorl, James J Esq RENEWAL10Ioni Bowcher
1016Smith GlickGermany2026-04-03Dorl, James J Esq NEGOTIATION96Bernardo Dominic
1017Juan WieserItaly2026-04-16Buckley Miller Wright NEW65Stephen Shaw
1018Darci PoquetteBrazil2026-04-12Printing Dimensions NEGOTIATION60Anna Fali
1019Johnson SergiBrazil2026-04-19Buckley Miller Wright PROPOSAL40Ioni Bowcher
1020Johnson SergiArgentina2026-03-25Chemel, James L Cpa UNQUALIFIED68Bernardo Dominic
1021Leja CaldareraFrance2026-04-05Rousseaux, Michael Esq PROPOSAL79Ivan Magalhaes
1022Clifford RimItaly2026-04-15Buckley Miller Wright NEW96Ivan Magalhaes
1023Jennifer AmigonCanada2026-03-29Dorl, James J Esq PROPOSAL23Stephen Shaw
1024Sinclair WaycottGermany2026-04-18Chapman, Ross E Esq UNQUALIFIED53Xuxue Feng
1025Deepesh ChuiSpain2026-04-12Truhlar And Truhlar Attys UNQUALIFIED40Bernardo Dominic
1026Izzy GarufiIndia2026-04-05Buckley Miller Wright UNQUALIFIED93Ioni Bowcher
1027Jones VocelkaItaly2026-03-29Chemel, James L Cpa UNQUALIFIED29Onyama Limba
1028Ivar PaprockiItaly2026-03-29Dorl, James J Esq QUALIFIED65Bernardo Dominic
1029Morrow RutaCanada2026-04-05Benton, John B Jr UNQUALIFIED65Onyama Limba
1030Clifford RimCanada2026-03-24Chemel, James L Cpa RENEWAL81Xuxue Feng
1031Misaki RoysterCanada2026-04-01Chapman, Ross E Esq NEGOTIATION45Ivan Magalhaes
1032Isabel BowleyIndia2026-04-10Dorl, James J Esq RENEWAL59Anna Fali
1033Ricardo GauchoIndia2026-03-25Rangoni Of Florence RENEWAL34Onyama Limba
1034Aditya KuskoUnited Kingdom2026-04-11Chapman, Ross E Esq UNQUALIFIED34Anna Fali
1035Leja CaldareraItaly2026-04-21Commercial Press QUALIFIED10Xuxue Feng
1036Johnson SergiBrazil2026-04-12Feltz Printing Service NEGOTIATION12Onyama Limba
1037Izzy GarufiArgentina2026-04-04Chapman, Ross E Esq RENEWAL6Amy Elsner
1038Faith GillianFrance2026-04-16Benton, John B Jr NEW50Onyama Limba
1039Arvin AlbaresUnited Kingdom2026-04-07Rangoni Of Florence NEGOTIATION70Stephen Shaw
1040Ricardo GauchoRussia2026-04-13Commercial Press QUALIFIED56Amy Elsner
1041Kadeem FlosiRussia2026-04-18Rangoni Of Florence PROPOSAL55Anna Fali
1042Smith GlickIndia2026-04-21Rangoni Of Florence PROPOSAL38Bernardo Dominic
1043Silvio SlusarskiGermany2026-04-15Chemel, James L Cpa NEGOTIATION81Ioni Bowcher
1044Deepesh ChuiIndia2026-04-03Feltz Printing Service NEGOTIATION27Ivan Magalhaes
1045Jennifer AmigonArgentina2026-04-12Feltz Printing Service RENEWAL0Ioni Bowcher
1046Morrow RutaIndia2026-04-01Buckley Miller Wright UNQUALIFIED18Anna Fali
1047Aruna FigeroaUnited Kingdom2026-04-15Chemel, James L Cpa UNQUALIFIED44Anna Fali
1048Octavia MaletGermany2026-04-06Rousseaux, Michael Esq PROPOSAL40Ioni Bowcher
1049Ivar PaprockiSpain2026-03-27Morlong Associates NEW1Amy Elsner
Frozen Rows
NameCountryRepresentativeStatus
Maria MarrierCanadaIoni Bowcher NEGOTIATION
Leon OldroydBrazilIoni Bowcher RENEWAL
Kadeem FlosiBrazilIoni Bowcher PROPOSAL
Julie StensethUnited KingdomElwin Sharvill UNQUALIFIED
Johnson SergiIndiaElwin Sharvill NEW
Francesco ShinkoCanadaIoni Bowcher NEGOTIATION
Claire TollnerJapanOnyama Limba RENEWAL
Jeanfrancois VenereItalyBernardo Dominic NEGOTIATION
Morrow RutaFranceBernardo Dominic QUALIFIED
Francesco ShinkoItalyAmy Elsner QUALIFIED
Octavia MaletRussiaAnna Fali QUALIFIED
Misaki RoysterBrazilStephen Shaw NEW
Salvatore StockhamGermanyStephen Shaw UNQUALIFIED
Kadeem FlosiCanadaBernardo Dominic PROPOSAL
Izzy GarufiAustraliaAnna Fali NEW
Rodrigues CampainAustraliaIoni Bowcher RENEWAL
Sinclair WaycottCanadaBernardo Dominic NEW
Murillo MaletUnited KingdomAsiya Javayant QUALIFIED
Aditya KuskoSpainIoni Bowcher UNQUALIFIED
Darci PoquetteRussiaIoni Bowcher QUALIFIED
Kadeem FlosiRussiaElwin Sharvill QUALIFIED
Izzy GarufiFranceBernardo Dominic QUALIFIED
Maisha RulapaughCanadaAsiya Javayant RENEWAL
Kadeem FlosiArgentinaAnna Fali NEW
Ricardo GauchoItalyAnna Fali PROPOSAL
Nicolas IturbideArgentinaElwin Sharvill RENEWAL
Greenwood BologniaSpainStephen Shaw PROPOSAL
Claire TollnerSpainXuxue Feng QUALIFIED
Octavia MaletGermanyXuxue Feng QUALIFIED
Maria MarrierItalyIvan Magalhaes NEGOTIATION
Jefferson SchemmerGermanyOnyama Limba QUALIFIED
Murillo MaletArgentinaIvan Magalhaes UNQUALIFIED
Antonio CaudyRussiaIoni Bowcher NEGOTIATION
Aditya KuskoArgentinaElwin Sharvill NEW
Costa DilliardSpainAnna Fali QUALIFIED
Maria MarrierBrazilAmy Elsner UNQUALIFIED
Munro FerenczBrazilIoni Bowcher QUALIFIED
Stacey MacleadSpainBernardo Dominic RENEWAL
Mujtaba NickaArgentinaIvan Magalhaes PROPOSAL
Deepesh ChuiAustraliaOnyama Limba UNQUALIFIED
Deepesh ChuiSpainXuxue Feng QUALIFIED
Octavia MaletSpainAsiya Javayant PROPOSAL
Chavez BriddickUnited KingdomIvan Magalhaes QUALIFIED
Nicolas IturbideUnited KingdomIoni Bowcher UNQUALIFIED
Antonio CaudyGermanyOnyama Limba RENEWAL
Juan WieserRussiaBernardo Dominic NEGOTIATION
Ivar PaprockiSpainIoni Bowcher PROPOSAL
Jennifer AmigonFranceXuxue Feng UNQUALIFIED
Izzy GarufiRussiaStephen Shaw NEW
Nicolas IturbideCanadaBernardo Dominic UNQUALIFIED
Frozen Columns
Name
Aruna Figeroa
Mujtaba Nicka
Antonio Caudy
Jones Vocelka
Deepesh Chui
Jefferson Schemmer
Murillo Malet
Chavez Briddick
Silvio Slusarski
Izzy Garufi
Rodrigues Campain
Adams Morasca
Kadeem Flosi
Darci Poquette
Tony Foller
Juan Wieser
Jennifer Amigon
Costa Dilliard
Johnson Sergi
Murillo Malet
David Darakjy
Kaitlin Ostrosky
Mayumi Kolmetz
Juan Wieser
Ashley Doe
Aruna Figeroa
Leon Oldroyd
Stacey Maclead
Smith Glick
Deepesh Chui
Emily Whobrey
Misaki Royster
Isabel Bowley
Chavez Briddick
Costa Dilliard
Ricardo Gaucho
Misaki Royster
Greenwood Bolognia
James Butt
Arvin Albares
Octavia Malet
Cody Saylors
Mayumi Kolmetz
Kaitlin Ostrosky
Leon Oldroyd
Sinclair Waycott
Jones Vocelka
Ashley Doe
Jennifer Amigon
Antonio Caudy
IdCountryDate
1000Japan2026-04-17
1001Japan2026-03-27
1002Germany2026-03-27
1003France2026-03-30
1004United Kingdom2026-04-10
1005Russia2026-04-11
1006Russia2026-04-20
1007India2026-04-16
1008Brazil2026-04-12
1009United Kingdom2026-04-18
1010India2026-03-25
1011Spain2026-04-15
1012India2026-04-04
1013United Kingdom2026-03-28
1014Canada2026-04-08
1015France2026-04-15
1016United Kingdom2026-04-16
1017Russia2026-04-21
1018Canada2026-04-03
1019Germany2026-04-18
1020Italy2026-03-31
1021India2026-03-26
1022France2026-03-31
1023Germany2026-04-11
1024Japan2026-04-12
1025France2026-04-07
1026Russia2026-04-08
1027Spain2026-04-06
1028Japan2026-04-08
1029United Kingdom2026-04-21
1030India2026-03-26
1031Spain2026-03-28
1032Japan2026-03-24
1033Canada2026-04-22
1034France2026-04-05
1035Germany2026-04-10
1036France2026-04-19
1037France2026-04-21
1038United Kingdom2026-04-19
1039Germany2026-04-06
1040Australia2026-03-30
1041Spain2026-04-22
1042Japan2026-04-06
1043Canada2026-04-14
1044Japan2026-03-24
1045Russia2026-04-10
1046Germany2026-04-12
1047Russia2026-04-09
1048Japan2026-04-16
1049India2026-04-08

On-Demand Data

NameIdCountryDate
Cody Saylors1000India2026-04-18
Francesco Shinko1001Canada2026-04-20
Ricardo Gaucho1002Japan2026-04-12
Jennifer Amigon1003Argentina2026-04-10
Deepesh Chui1004Japan2026-04-13
Kaitlin Ostrosky1005Argentina2026-03-28
Octavia Malet1006United Kingdom2026-03-24
Jeanfrancois Venere1007France2026-03-26
Jeanfrancois Venere1008France2026-04-20
Stacey Maclead1009Canada2026-04-12
Jones Vocelka1010Argentina2026-04-20
Isabel Bowley1011India2026-04-22
Wickens Nestle1012Australia2026-04-21
Juan Wieser1013Russia2026-03-24
Arvin Albares1014India2026-04-04
Misaki Royster1015India2026-04-01
Maisha Rulapaugh1016Canada2026-04-10
Claire Tollner1017Spain2026-04-06
Leon Oldroyd1018India2026-04-18
Antonio Caudy1019Canada2026-03-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Clifford RimUnited KingdomIoni Bowcher RENEWAL
Mujtaba NickaJapanAsiya Javayant QUALIFIED
Cody SaylorsAustraliaBernardo Dominic UNQUALIFIED
Maria MarrierBrazilIoni Bowcher RENEWAL
James ButtBrazilOnyama Limba UNQUALIFIED
Aditya KuskoFranceIvan Magalhaes NEGOTIATION
Maria MarrierBrazilXuxue Feng RENEWAL
Wickens NestleJapanBernardo Dominic RENEWAL
Greenwood BologniaBrazilAnna Fali PROPOSAL
Costa DilliardArgentinaOnyama Limba RENEWAL
Tony FollerGermanyElwin Sharvill QUALIFIED
Ricardo GauchoSpainStephen Shaw UNQUALIFIED
Sinclair WaycottGermanyIoni Bowcher PROPOSAL
Juan WieserBrazilStephen Shaw RENEWAL
Mayumi KolmetzFranceAsiya Javayant NEW
Arvin AlbaresIndiaBernardo Dominic UNQUALIFIED
Jefferson SchemmerIndiaIvan Magalhaes PROPOSAL
Emily WhobreySpainAnna Fali NEGOTIATION
Mayumi KolmetzBrazilAmy Elsner QUALIFIED
Deepesh ChuiBrazilAsiya Javayant NEW
Misaki RoysterGermanyOnyama Limba NEW
Chavez BriddickIndiaIoni Bowcher RENEWAL
Juan WieserIndiaBernardo Dominic RENEWAL
Jennifer AmigonItalyAmy Elsner UNQUALIFIED
Kaitlin OstroskyJapanStephen Shaw QUALIFIED
Chavez BriddickJapanStephen Shaw NEGOTIATION
Costa DilliardBrazilIoni Bowcher PROPOSAL
Aditya KuskoBrazilAmy Elsner PROPOSAL
Mujtaba NickaArgentinaXuxue Feng QUALIFIED
Costa DilliardUnited KingdomAsiya Javayant NEGOTIATION
Tony FollerArgentinaAnna Fali UNQUALIFIED
Mujtaba NickaArgentinaAnna Fali RENEWAL
Munro FerenczArgentinaElwin Sharvill RENEWAL
Nicolas IturbideCanadaOnyama Limba NEW
Kaitlin OstroskyFranceIvan Magalhaes RENEWAL
Deepesh ChuiItalyOnyama Limba QUALIFIED
Smith GlickSpainBernardo Dominic UNQUALIFIED
Smith GlickRussiaAsiya Javayant UNQUALIFIED
Faith GillianItalyAmy Elsner PROPOSAL
Aika InouyeAustraliaOnyama Limba 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>