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
Tony FollerAustraliaAmy Elsner UNQUALIFIED
Francesco ShinkoRussiaElwin Sharvill QUALIFIED
Greenwood BologniaIndiaBernardo Dominic UNQUALIFIED
Rodrigues CampainCanadaXuxue Feng RENEWAL
Francesco ShinkoBrazilAmy Elsner NEW
James ButtRussiaOnyama Limba UNQUALIFIED
Adams MorascaBrazilIoni Bowcher PROPOSAL
Ivar PaprockiGermanyAmy Elsner NEW
Ashley DoeGermanyAmy Elsner NEGOTIATION
Deepesh ChuiCanadaXuxue Feng UNQUALIFIED
Jones VocelkaBrazilIoni Bowcher RENEWAL
Jones VocelkaItalyStephen Shaw UNQUALIFIED
Rodrigues CampainFranceIoni Bowcher RENEWAL
Izzy GarufiItalyXuxue Feng PROPOSAL
Juan WieserBrazilOnyama Limba PROPOSAL
Leja CaldareraCanadaStephen Shaw NEW
Ashley DoeUnited KingdomBernardo Dominic NEW
Alejandro PerinItalyAmy Elsner QUALIFIED
Maisha RulapaughJapanElwin Sharvill QUALIFIED
Silvio SlusarskiUnited KingdomAsiya Javayant NEW
Nicolas IturbideIndiaBernardo Dominic RENEWAL
Tony FollerIndiaAsiya Javayant RENEWAL
Alejandro PerinJapanAmy Elsner NEGOTIATION
Greenwood BologniaGermanyOnyama Limba NEGOTIATION
Tony FollerRussiaAnna Fali QUALIFIED
Mujtaba NickaArgentinaAmy Elsner NEW
Faith GillianArgentinaAmy Elsner RENEWAL
Greenwood BologniaItalyXuxue Feng PROPOSAL
Stacey MacleadItalyIoni Bowcher NEGOTIATION
Jennifer AmigonUnited KingdomStephen Shaw NEW
Ivar PaprockiArgentinaElwin Sharvill NEGOTIATION
Jeanfrancois VenereUnited KingdomAsiya Javayant NEW
Costa DilliardRussiaStephen Shaw QUALIFIED
Deepesh ChuiFranceOnyama Limba UNQUALIFIED
Chavez BriddickBrazilAsiya Javayant QUALIFIED
Stacey MacleadFranceElwin Sharvill QUALIFIED
James ButtUnited KingdomBernardo Dominic PROPOSAL
Kadeem FlosiCanadaXuxue Feng QUALIFIED
Mayumi KolmetzAustraliaAsiya Javayant NEGOTIATION
Misaki RoysterCanadaElwin Sharvill NEGOTIATION
Faith GillianBrazilElwin Sharvill PROPOSAL
Leja CaldareraJapanAmy Elsner PROPOSAL
Misaki RoysterAustraliaBernardo Dominic PROPOSAL
Ivar PaprockiAustraliaAsiya Javayant PROPOSAL
Octavia MaletUnited KingdomIvan Magalhaes NEW
Maria MarrierRussiaBernardo Dominic QUALIFIED
Claire TollnerSpainAmy Elsner QUALIFIED
Greenwood BologniaAustraliaElwin Sharvill NEW
Clifford RimGermanyStephen Shaw RENEWAL
Francesco ShinkoArgentinaIoni Bowcher RENEWAL
Horizontal
NameCountryRepresentativeStatus
Silvio SlusarskiRussiaAnna Fali UNQUALIFIED
Smith GlickArgentinaBernardo Dominic NEGOTIATION
Jeanfrancois VenereSpainIvan Magalhaes PROPOSAL
Nicolas IturbideRussiaOnyama Limba PROPOSAL
Morrow RutaFranceOnyama Limba UNQUALIFIED
Francesco ShinkoFranceXuxue Feng UNQUALIFIED
Murillo MaletJapanIvan Magalhaes NEGOTIATION
Darci PoquetteIndiaAmy Elsner NEGOTIATION
Leja CaldareraIndiaIoni Bowcher NEW
Emily WhobreyUnited KingdomStephen Shaw PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Aditya KuskoItaly2026-05-19Benton, John B Jr PROPOSAL13Bernardo Dominic
1001James ButtGermany2026-04-30Chanay, Jeffrey A Esq PROPOSAL49Onyama Limba
1002Deepesh ChuiAustralia2026-05-03Chanay, Jeffrey A Esq NEW77Elwin Sharvill
1003Rodrigues CampainItaly2026-05-02Printing Dimensions UNQUALIFIED48Asiya Javayant
1004Ivar PaprockiBrazil2026-05-12King, Christopher A Esq QUALIFIED39Anna Fali
1005Adams MorascaSpain2026-04-27Rousseaux, Michael Esq UNQUALIFIED15Anna Fali
1006Murillo MaletFrance2026-05-06King, Christopher A Esq PROPOSAL96Onyama Limba
1007Francesco ShinkoFrance2026-05-17Morlong Associates NEGOTIATION0Asiya Javayant
1008Maisha RulapaughJapan2026-05-12Feiner Bros NEGOTIATION81Ivan Magalhaes
1009Kadeem FlosiSpain2026-05-11Chemel, James L Cpa NEW22Asiya Javayant
1010Maria MarrierIndia2026-05-08Printing Dimensions NEW57Stephen Shaw
1011Morrow RutaGermany2026-05-06Feiner Bros UNQUALIFIED80Asiya Javayant
1012Ricardo GauchoItaly2026-05-19Buckley Miller Wright QUALIFIED62Onyama Limba
1013Ivar PaprockiGermany2026-05-04King, Christopher A Esq QUALIFIED97Amy Elsner
1014Julie StensethGermany2026-05-16Morlong Associates NEW0Onyama Limba
1015Leon OldroydIndia2026-05-16Rangoni Of Florence NEGOTIATION14Ivan Magalhaes
1016Misaki RoysterGermany2026-04-28Chapman, Ross E Esq QUALIFIED10Elwin Sharvill
1017Maria MarrierRussia2026-05-01King, Christopher A Esq QUALIFIED81Amy Elsner
1018Jennifer AmigonArgentina2026-05-08Chapman, Ross E Esq NEW99Elwin Sharvill
1019Murillo MaletRussia2026-05-10Chapman, Ross E Esq NEGOTIATION94Xuxue Feng
1020James ButtRussia2026-05-22Rangoni Of Florence RENEWAL94Anna Fali
1021Aditya KuskoCanada2026-04-26Printing Dimensions UNQUALIFIED57Xuxue Feng
1022Ivar PaprockiAustralia2026-05-19Feiner Bros NEGOTIATION91Asiya Javayant
1023Isabel BowleyCanada2026-05-16Buckley Miller Wright UNQUALIFIED4Anna Fali
1024Ricardo GauchoBrazil2026-05-15Feiner Bros PROPOSAL74Stephen Shaw
1025Alejandro PerinItaly2026-04-26Truhlar And Truhlar Attys UNQUALIFIED61Xuxue Feng
1026Tony FollerIndia2026-05-06Feltz Printing Service UNQUALIFIED45Xuxue Feng
1027Nicolas IturbideAustralia2026-05-21Commercial Press NEGOTIATION2Onyama Limba
1028Sinclair WaycottUnited Kingdom2026-05-11Printing Dimensions UNQUALIFIED99Anna Fali
1029Johnson SergiUnited Kingdom2026-05-12Commercial Press PROPOSAL15Xuxue Feng
1030Octavia MaletJapan2026-05-11King, Christopher A Esq PROPOSAL26Anna Fali
1031Sinclair WaycottRussia2026-05-12Morlong Associates NEW91Ioni Bowcher
1032Emily WhobreyGermany2026-05-11Chanay, Jeffrey A Esq QUALIFIED65Xuxue Feng
1033Murillo MaletGermany2026-04-26Benton, John B Jr QUALIFIED70Xuxue Feng
1034Greenwood BologniaSpain2026-05-05Truhlar And Truhlar Attys PROPOSAL21Elwin Sharvill
1035Ricardo GauchoAustralia2026-05-05Feltz Printing Service PROPOSAL45Onyama Limba
1036Julie StensethUnited Kingdom2026-05-11Commercial Press PROPOSAL23Elwin Sharvill
1037Mujtaba NickaArgentina2026-05-25Printing Dimensions QUALIFIED58Xuxue Feng
1038Kadeem FlosiJapan2026-04-27Truhlar And Truhlar Attys NEGOTIATION80Onyama Limba
1039Julie StensethCanada2026-05-16Benton, John B Jr PROPOSAL51Elwin Sharvill
1040Juan WieserFrance2026-05-18Rangoni Of Florence NEGOTIATION66Bernardo Dominic
1041Stacey MacleadArgentina2026-05-21Commercial Press NEGOTIATION4Ioni Bowcher
1042Costa DilliardBrazil2026-05-13Feiner Bros NEW21Onyama Limba
1043James ButtCanada2026-05-21Feltz Printing Service NEGOTIATION76Stephen Shaw
1044Stacey MacleadCanada2026-05-16Commercial Press RENEWAL51Ivan Magalhaes
1045Mujtaba NickaUnited Kingdom2026-05-05Chemel, James L Cpa RENEWAL58Bernardo Dominic
1046Tony FollerUnited Kingdom2026-05-04Feiner Bros QUALIFIED70Bernardo Dominic
1047Adams MorascaAustralia2026-05-10Commercial Press QUALIFIED63Ioni Bowcher
1048Smith GlickJapan2026-05-11Chanay, Jeffrey A Esq QUALIFIED24Xuxue Feng
1049Claire TollnerRussia2026-05-01Chapman, Ross E Esq QUALIFIED85Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Juan WieserRussiaStephen Shaw PROPOSAL
Darci PoquetteJapanElwin Sharvill QUALIFIED
Cody SaylorsAustraliaAmy Elsner QUALIFIED
Mayumi KolmetzFranceIvan Magalhaes QUALIFIED
Deepesh ChuiAustraliaAsiya Javayant RENEWAL
Costa DilliardGermanyBernardo Dominic RENEWAL
Jeanfrancois VenereGermanyAsiya Javayant UNQUALIFIED
Silvio SlusarskiBrazilElwin Sharvill NEW
Julie StensethUnited KingdomIvan Magalhaes PROPOSAL
Maria MarrierJapanBernardo Dominic QUALIFIED
Stacey MacleadSpainOnyama Limba QUALIFIED
Munro FerenczJapanAmy Elsner QUALIFIED
Adams MorascaCanadaXuxue Feng NEGOTIATION
Misaki RoysterItalyAsiya Javayant NEGOTIATION
Sinclair WaycottJapanOnyama Limba UNQUALIFIED
Sinclair WaycottAustraliaStephen Shaw RENEWAL
Ashley DoeGermanyAmy Elsner NEGOTIATION
Emily WhobreyGermanyXuxue Feng RENEWAL
Wickens NestleFranceBernardo Dominic PROPOSAL
Octavia MaletFranceIvan Magalhaes NEGOTIATION
Isabel BowleyItalyBernardo Dominic QUALIFIED
Leja CaldareraItalyElwin Sharvill NEW
Jones VocelkaIndiaAnna Fali UNQUALIFIED
Ashley DoeCanadaAnna Fali UNQUALIFIED
Octavia MaletCanadaAsiya Javayant NEGOTIATION
Emily WhobreyIndiaIoni Bowcher NEW
Alejandro PerinRussiaAnna Fali UNQUALIFIED
Cody SaylorsItalyAnna Fali PROPOSAL
Johnson SergiCanadaAsiya Javayant PROPOSAL
Kadeem FlosiArgentinaIoni Bowcher PROPOSAL
Leja CaldareraUnited KingdomXuxue Feng NEW
Mujtaba NickaUnited KingdomElwin Sharvill NEW
Claire TollnerJapanXuxue Feng RENEWAL
Ricardo GauchoRussiaElwin Sharvill UNQUALIFIED
Jones VocelkaUnited KingdomBernardo Dominic NEW
Arvin AlbaresFranceIvan Magalhaes QUALIFIED
Antonio CaudyRussiaStephen Shaw UNQUALIFIED
Aruna FigeroaGermanyAnna Fali NEGOTIATION
Ivar PaprockiCanadaIvan Magalhaes PROPOSAL
Leon OldroydAustraliaAnna Fali PROPOSAL
Jeanfrancois VenereUnited KingdomAmy Elsner NEW
Faith GillianUnited KingdomAsiya Javayant RENEWAL
Nicolas IturbideBrazilAmy Elsner UNQUALIFIED
Claire TollnerItalyXuxue Feng RENEWAL
Silvio SlusarskiRussiaOnyama Limba UNQUALIFIED
Leja CaldareraRussiaAmy Elsner RENEWAL
Murillo MaletItalyBernardo Dominic PROPOSAL
Emily WhobreyBrazilElwin Sharvill RENEWAL
Costa DilliardIndiaIvan Magalhaes NEGOTIATION
Maisha RulapaughSpainXuxue Feng NEGOTIATION
Frozen Columns
Name
Deepesh Chui
Claire Tollner
Cody Saylors
Adams Morasca
Izzy Garufi
Munro Ferencz
Tony Foller
Leon Oldroyd
Chavez Briddick
Greenwood Bolognia
Munro Ferencz
Kaitlin Ostrosky
Nicolas Iturbide
Kadeem Flosi
Emily Whobrey
Alejandro Perin
Jennifer Amigon
Costa Dilliard
Maria Marrier
Greenwood Bolognia
James Butt
Silvio Slusarski
Clifford Rim
Maisha Rulapaugh
Faith Gillian
Adams Morasca
Kaitlin Ostrosky
David Darakjy
Aika Inouye
Misaki Royster
Ricardo Gaucho
Ivar Paprocki
Francesco Shinko
David Darakjy
Maisha Rulapaugh
Sinclair Waycott
David Darakjy
Claire Tollner
Nicolas Iturbide
Nicolas Iturbide
Clifford Rim
Stacey Maclead
Costa Dilliard
Adams Morasca
Jennifer Amigon
James Butt
Francesco Shinko
Ivar Paprocki
Morrow Ruta
Mayumi Kolmetz
IdCountryDate
1000Japan2026-05-17
1001Argentina2026-05-10
1002India2026-05-15
1003Russia2026-05-13
1004Brazil2026-05-18
1005Australia2026-05-23
1006France2026-05-20
1007Canada2026-05-08
1008Australia2026-04-28
1009Brazil2026-05-17
1010Canada2026-05-20
1011Japan2026-05-23
1012Russia2026-04-27
1013India2026-05-14
1014Russia2026-05-11
1015Japan2026-05-10
1016Brazil2026-05-18
1017India2026-05-04
1018India2026-04-28
1019Russia2026-05-24
1020Germany2026-05-06
1021Italy2026-05-08
1022Australia2026-05-25
1023India2026-05-02
1024United Kingdom2026-04-27
1025Italy2026-05-21
1026Argentina2026-05-14
1027France2026-05-23
1028United Kingdom2026-04-30
1029France2026-05-06
1030Japan2026-05-18
1031Germany2026-04-26
1032Brazil2026-05-08
1033Australia2026-05-04
1034United Kingdom2026-05-25
1035Canada2026-05-20
1036Brazil2026-05-12
1037Japan2026-05-11
1038Argentina2026-05-07
1039Argentina2026-04-30
1040Italy2026-04-29
1041Germany2026-05-09
1042Australia2026-05-19
1043United Kingdom2026-05-21
1044Russia2026-05-10
1045Canada2026-05-14
1046Argentina2026-04-26
1047Argentina2026-04-30
1048Brazil2026-05-21
1049Canada2026-05-05

On-Demand Data

NameIdCountryDate
Clifford Rim1000Russia2026-05-14
Jennifer Amigon1001Argentina2026-05-01
Stacey Maclead1002Japan2026-04-29
Rodrigues Campain1003Germany2026-05-07
Stacey Maclead1004India2026-04-29
Leja Caldarera1005France2026-05-23
Nicolas Iturbide1006Brazil2026-05-06
Stacey Maclead1007Canada2026-04-28
Ricardo Gaucho1008Japan2026-05-08
Leja Caldarera1009Russia2026-05-07
Jeanfrancois Venere1010Spain2026-05-04
Juan Wieser1011Italy2026-05-16
Faith Gillian1012United Kingdom2026-04-28
Chavez Briddick1013Canada2026-05-15
Sinclair Waycott1014Spain2026-05-01
Ivar Paprocki1015Spain2026-05-22
Wickens Nestle1016Russia2026-04-30
Aditya Kusko1017Russia2026-05-11
Morrow Ruta1018Brazil2026-05-07
Juan Wieser1019India2026-05-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Stacey MacleadArgentinaAnna Fali QUALIFIED
Jennifer AmigonJapanIvan Magalhaes QUALIFIED
Nicolas IturbideItalyIoni Bowcher RENEWAL
Antonio CaudyIndiaXuxue Feng NEGOTIATION
Maisha RulapaughAustraliaIoni Bowcher RENEWAL
Darci PoquetteRussiaStephen Shaw RENEWAL
Maisha RulapaughArgentinaIoni Bowcher QUALIFIED
Stacey MacleadIndiaStephen Shaw UNQUALIFIED
Munro FerenczGermanyIvan Magalhaes UNQUALIFIED
Salvatore StockhamItalyStephen Shaw PROPOSAL
Darci PoquetteIndiaStephen Shaw QUALIFIED
Leon OldroydCanadaIvan Magalhaes UNQUALIFIED
Claire TollnerArgentinaAnna Fali NEGOTIATION
Aika InouyeArgentinaAmy Elsner PROPOSAL
Leja CaldareraCanadaAnna Fali RENEWAL
Clifford RimItalyElwin Sharvill QUALIFIED
Claire TollnerAustraliaBernardo Dominic RENEWAL
Smith GlickBrazilAsiya Javayant QUALIFIED
Silvio SlusarskiSpainIvan Magalhaes UNQUALIFIED
Johnson SergiArgentinaAnna Fali RENEWAL
Francesco ShinkoAustraliaAmy Elsner PROPOSAL
David DarakjyItalyIvan Magalhaes QUALIFIED
Claire TollnerUnited KingdomStephen Shaw QUALIFIED
Izzy GarufiIndiaBernardo Dominic NEW
Claire TollnerFranceElwin Sharvill NEGOTIATION
Ricardo GauchoIndiaStephen Shaw NEGOTIATION
Isabel BowleyFranceAsiya Javayant UNQUALIFIED
Chavez BriddickFranceStephen Shaw RENEWAL
Mujtaba NickaGermanyAnna Fali QUALIFIED
Mayumi KolmetzAustraliaAmy Elsner QUALIFIED
Chavez BriddickUnited KingdomOnyama Limba QUALIFIED
Ivar PaprockiRussiaBernardo Dominic NEGOTIATION
Adams MorascaSpainAnna Fali RENEWAL
Juan WieserIndiaBernardo Dominic NEW
Nicolas IturbideGermanyElwin Sharvill QUALIFIED
Juan WieserGermanyIvan Magalhaes PROPOSAL
Maisha RulapaughArgentinaOnyama Limba QUALIFIED
Jennifer AmigonGermanyAnna Fali UNQUALIFIED
Murillo MaletCanadaElwin Sharvill QUALIFIED
Stacey MacleadIndiaIvan Magalhaes 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>