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
Isabel BowleyUnited KingdomIoni Bowcher NEW
Morrow RutaFranceElwin Sharvill PROPOSAL
Jeanfrancois VenereArgentinaStephen Shaw QUALIFIED
Silvio SlusarskiRussiaOnyama Limba PROPOSAL
Antonio CaudySpainBernardo Dominic RENEWAL
Munro FerenczFranceIoni Bowcher RENEWAL
Jennifer AmigonIndiaXuxue Feng NEW
Maisha RulapaughGermanyAsiya Javayant UNQUALIFIED
Silvio SlusarskiBrazilAnna Fali QUALIFIED
Mayumi KolmetzFranceStephen Shaw PROPOSAL
David DarakjyFranceIoni Bowcher UNQUALIFIED
Ricardo GauchoArgentinaElwin Sharvill UNQUALIFIED
Jeanfrancois VenereItalyIvan Magalhaes QUALIFIED
Ashley DoeArgentinaIvan Magalhaes UNQUALIFIED
Munro FerenczIndiaElwin Sharvill PROPOSAL
Mujtaba NickaArgentinaBernardo Dominic RENEWAL
David DarakjySpainXuxue Feng RENEWAL
Maria MarrierItalyIvan Magalhaes RENEWAL
Stacey MacleadJapanStephen Shaw UNQUALIFIED
Julie StensethIndiaElwin Sharvill QUALIFIED
Stacey MacleadRussiaIoni Bowcher UNQUALIFIED
Jennifer AmigonFranceAmy Elsner RENEWAL
Chavez BriddickFranceStephen Shaw RENEWAL
Antonio CaudySpainAsiya Javayant UNQUALIFIED
Jones VocelkaFranceAnna Fali NEW
Murillo MaletBrazilAsiya Javayant UNQUALIFIED
Izzy GarufiGermanyOnyama Limba RENEWAL
Jennifer AmigonCanadaStephen Shaw RENEWAL
Smith GlickSpainIvan Magalhaes QUALIFIED
Clifford RimItalyStephen Shaw NEGOTIATION
Claire TollnerFranceBernardo Dominic PROPOSAL
Claire TollnerArgentinaAnna Fali NEW
Nicolas IturbideSpainIoni Bowcher RENEWAL
Johnson SergiSpainIoni Bowcher QUALIFIED
Munro FerenczFranceAmy Elsner NEW
Adams MorascaFranceAnna Fali QUALIFIED
Julie StensethItalyOnyama Limba PROPOSAL
Jones VocelkaRussiaBernardo Dominic QUALIFIED
Mayumi KolmetzCanadaElwin Sharvill NEW
Maisha RulapaughJapanAsiya Javayant NEGOTIATION
Juan WieserBrazilIoni Bowcher UNQUALIFIED
Maisha RulapaughCanadaAsiya Javayant PROPOSAL
Salvatore StockhamArgentinaAsiya Javayant QUALIFIED
Ivar PaprockiIndiaOnyama Limba PROPOSAL
Aruna FigeroaArgentinaXuxue Feng UNQUALIFIED
Stacey MacleadRussiaAmy Elsner PROPOSAL
Aika InouyeSpainIvan Magalhaes NEW
Jeanfrancois VenereAustraliaAsiya Javayant NEW
Aruna FigeroaCanadaIvan Magalhaes QUALIFIED
Silvio SlusarskiFranceAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Ricardo GauchoJapanIvan Magalhaes RENEWAL
James ButtFranceOnyama Limba UNQUALIFIED
Silvio SlusarskiCanadaElwin Sharvill NEGOTIATION
Arvin AlbaresSpainOnyama Limba UNQUALIFIED
Costa DilliardItalyOnyama Limba NEGOTIATION
Octavia MaletAustraliaStephen Shaw UNQUALIFIED
Nicolas IturbideItalyAnna Fali PROPOSAL
Faith GillianSpainElwin Sharvill RENEWAL
Izzy GarufiIndiaElwin Sharvill RENEWAL
Alejandro PerinCanadaElwin Sharvill NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony FollerGermany2026-04-12Dorl, James J Esq QUALIFIED98Anna Fali
1001Ricardo GauchoAustralia2026-04-11Truhlar And Truhlar Attys NEGOTIATION45Ivan Magalhaes
1002Johnson SergiArgentina2026-04-18Chemel, James L Cpa UNQUALIFIED20Ivan Magalhaes
1003Jeanfrancois VenereItaly2026-04-21Morlong Associates NEGOTIATION49Onyama Limba
1004Murillo MaletBrazil2026-04-18Rousseaux, Michael Esq UNQUALIFIED62Onyama Limba
1005Alejandro PerinUnited Kingdom2026-04-26Printing Dimensions NEGOTIATION43Elwin Sharvill
1006Aruna FigeroaUnited Kingdom2026-04-25Benton, John B Jr UNQUALIFIED22Bernardo Dominic
1007David DarakjyRussia2026-04-17Dorl, James J Esq NEW66Stephen Shaw
1008Stacey MacleadArgentina2026-04-17Truhlar And Truhlar Attys UNQUALIFIED67Amy Elsner
1009Jeanfrancois VenereGermany2026-04-09Truhlar And Truhlar Attys PROPOSAL41Amy Elsner
1010Wickens NestleBrazil2026-04-27Rangoni Of Florence PROPOSAL54Elwin Sharvill
1011Silvio SlusarskiGermany2026-04-11Rousseaux, Michael Esq NEW42Asiya Javayant
1012Jefferson SchemmerArgentina2026-04-25Dorl, James J Esq QUALIFIED39Stephen Shaw
1013Stacey MacleadUnited Kingdom2026-04-22Chapman, Ross E Esq UNQUALIFIED80Bernardo Dominic
1014Tony FollerAustralia2026-04-17Commercial Press UNQUALIFIED9Ioni Bowcher
1015Isabel BowleyUnited Kingdom2026-04-07Commercial Press NEW66Ivan Magalhaes
1016Morrow RutaArgentina2026-04-20Commercial Press NEW14Asiya Javayant
1017Costa DilliardUnited Kingdom2026-04-11Morlong Associates UNQUALIFIED67Amy Elsner
1018Jeanfrancois VenereRussia2026-04-19Chemel, James L Cpa NEGOTIATION24Bernardo Dominic
1019Faith GillianIndia2026-04-19Benton, John B Jr UNQUALIFIED17Amy Elsner
1020Salvatore StockhamFrance2026-04-06Chemel, James L Cpa UNQUALIFIED21Bernardo Dominic
1021Leon OldroydCanada2026-04-10Feltz Printing Service RENEWAL29Elwin Sharvill
1022Mayumi KolmetzFrance2026-04-16Printing Dimensions UNQUALIFIED57Xuxue Feng
1023Johnson SergiJapan2026-04-05Chapman, Ross E Esq RENEWAL57Asiya Javayant
1024Nicolas IturbideArgentina2026-04-30King, Christopher A Esq PROPOSAL96Amy Elsner
1025Stacey MacleadJapan2026-04-10Buckley Miller Wright PROPOSAL23Asiya Javayant
1026Mujtaba NickaFrance2026-04-25Printing Dimensions RENEWAL69Elwin Sharvill
1027Mayumi KolmetzIndia2026-04-02Rangoni Of Florence NEW45Ioni Bowcher
1028Jeanfrancois VenereArgentina2026-04-03Chemel, James L Cpa PROPOSAL11Elwin Sharvill
1029James ButtRussia2026-04-09Feltz Printing Service RENEWAL37Stephen Shaw
1030Clifford RimSpain2026-04-15Morlong Associates RENEWAL57Ivan Magalhaes
1031Jefferson SchemmerFrance2026-04-08Chapman, Ross E Esq RENEWAL40Amy Elsner
1032James ButtRussia2026-04-15Rousseaux, Michael Esq NEGOTIATION81Stephen Shaw
1033Silvio SlusarskiIndia2026-04-10Dorl, James J Esq PROPOSAL35Anna Fali
1034Octavia MaletGermany2026-04-16Truhlar And Truhlar Attys QUALIFIED40Stephen Shaw
1035Alejandro PerinItaly2026-04-20Chapman, Ross E Esq QUALIFIED31Elwin Sharvill
1036Silvio SlusarskiJapan2026-04-30Commercial Press UNQUALIFIED90Asiya Javayant
1037Leon OldroydRussia2026-04-12Commercial Press QUALIFIED7Ivan Magalhaes
1038Aruna FigeroaFrance2026-04-06Buckley Miller Wright QUALIFIED21Onyama Limba
1039Greenwood BologniaBrazil2026-04-10Commercial Press QUALIFIED80Onyama Limba
1040Misaki RoysterBrazil2026-04-06Benton, John B Jr RENEWAL45Ivan Magalhaes
1041Claire TollnerGermany2026-04-25Feltz Printing Service UNQUALIFIED68Bernardo Dominic
1042Ashley DoeFrance2026-04-13Chemel, James L Cpa UNQUALIFIED16Xuxue Feng
1043Munro FerenczSpain2026-04-03Benton, John B Jr NEGOTIATION29Ioni Bowcher
1044Tony FollerBrazil2026-04-29Feltz Printing Service NEW71Elwin Sharvill
1045James ButtRussia2026-04-15Dorl, James J Esq NEGOTIATION39Onyama Limba
1046Nicolas IturbideArgentina2026-04-16Chapman, Ross E Esq RENEWAL81Bernardo Dominic
1047David DarakjyJapan2026-04-23Commercial Press QUALIFIED96Onyama Limba
1048Johnson SergiSpain2026-04-18Benton, John B Jr QUALIFIED55Ivan Magalhaes
1049Maria MarrierUnited Kingdom2026-04-06Printing Dimensions RENEWAL39Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Mayumi KolmetzGermanyAnna Fali NEGOTIATION
Julie StensethCanadaAmy Elsner NEW
Rodrigues CampainGermanyIvan Magalhaes QUALIFIED
Maisha RulapaughAustraliaBernardo Dominic NEW
Arvin AlbaresRussiaBernardo Dominic NEW
Nicolas IturbideGermanyOnyama Limba UNQUALIFIED
Octavia MaletIndiaElwin Sharvill QUALIFIED
Sinclair WaycottIndiaStephen Shaw QUALIFIED
Julie StensethRussiaOnyama Limba NEW
Adams MorascaSpainStephen Shaw NEGOTIATION
Sinclair WaycottIndiaAnna Fali RENEWAL
Juan WieserCanadaXuxue Feng NEW
Misaki RoysterIndiaAnna Fali NEGOTIATION
Adams MorascaIndiaStephen Shaw NEW
Jefferson SchemmerArgentinaAmy Elsner RENEWAL
James ButtCanadaXuxue Feng RENEWAL
Stacey MacleadCanadaAsiya Javayant NEGOTIATION
Rodrigues CampainRussiaIvan Magalhaes UNQUALIFIED
Kadeem FlosiGermanyStephen Shaw RENEWAL
Alejandro PerinAustraliaAmy Elsner QUALIFIED
Silvio SlusarskiCanadaStephen Shaw NEW
Antonio CaudyBrazilAmy Elsner QUALIFIED
Ashley DoeItalyAsiya Javayant PROPOSAL
Salvatore StockhamJapanStephen Shaw NEGOTIATION
Francesco ShinkoGermanyAmy Elsner NEW
Misaki RoysterCanadaIvan Magalhaes RENEWAL
Jeanfrancois VenereIndiaAsiya Javayant NEGOTIATION
Tony FollerGermanyXuxue Feng NEGOTIATION
Morrow RutaArgentinaXuxue Feng NEW
Mayumi KolmetzJapanBernardo Dominic RENEWAL
Kaitlin OstroskyRussiaBernardo Dominic PROPOSAL
Antonio CaudyCanadaIvan Magalhaes RENEWAL
Izzy GarufiFranceAnna Fali NEW
David DarakjySpainXuxue Feng NEW
Silvio SlusarskiIndiaAnna Fali NEGOTIATION
Maria MarrierFranceIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereFranceStephen Shaw PROPOSAL
Silvio SlusarskiItalyStephen Shaw NEGOTIATION
Jones VocelkaJapanAnna Fali QUALIFIED
Stacey MacleadRussiaAmy Elsner PROPOSAL
Jefferson SchemmerRussiaStephen Shaw UNQUALIFIED
Tony FollerUnited KingdomElwin Sharvill PROPOSAL
Jennifer AmigonJapanElwin Sharvill PROPOSAL
Jeanfrancois VenereCanadaStephen Shaw RENEWAL
Costa DilliardArgentinaAmy Elsner NEW
Costa DilliardGermanyAnna Fali NEW
Ricardo GauchoUnited KingdomStephen Shaw QUALIFIED
Ivar PaprockiGermanyAnna Fali QUALIFIED
Chavez BriddickCanadaOnyama Limba RENEWAL
Izzy GarufiGermanyStephen Shaw UNQUALIFIED
Frozen Columns
Name
Mayumi Kolmetz
Maria Marrier
Greenwood Bolognia
Murillo Malet
Nicolas Iturbide
Salvatore Stockham
Antonio Caudy
Kadeem Flosi
Murillo Malet
Jones Vocelka
Octavia Malet
Misaki Royster
Antonio Caudy
David Darakjy
David Darakjy
Chavez Briddick
Leja Caldarera
Antonio Caudy
Chavez Briddick
Kaitlin Ostrosky
Kadeem Flosi
Greenwood Bolognia
Rodrigues Campain
David Darakjy
Octavia Malet
Ricardo Gaucho
Ashley Doe
Mayumi Kolmetz
Kaitlin Ostrosky
Tony Foller
Salvatore Stockham
Jefferson Schemmer
Jennifer Amigon
Greenwood Bolognia
Francesco Shinko
Juan Wieser
Stacey Maclead
Emily Whobrey
Ashley Doe
Ashley Doe
Mayumi Kolmetz
Salvatore Stockham
Aika Inouye
Aditya Kusko
Izzy Garufi
Silvio Slusarski
Aika Inouye
Darci Poquette
Johnson Sergi
Tony Foller
IdCountryDate
1000Japan2026-04-29
1001Germany2026-04-21
1002United Kingdom2026-05-01
1003Germany2026-04-24
1004Argentina2026-04-11
1005Argentina2026-04-24
1006Australia2026-04-13
1007Germany2026-04-21
1008Brazil2026-04-22
1009France2026-04-20
1010Russia2026-04-12
1011Argentina2026-04-03
1012Russia2026-04-25
1013Brazil2026-04-04
1014Brazil2026-04-16
1015France2026-04-04
1016Japan2026-04-10
1017Italy2026-04-09
1018Spain2026-04-15
1019Argentina2026-04-23
1020Argentina2026-04-18
1021Italy2026-04-05
1022Canada2026-04-14
1023Spain2026-04-15
1024Germany2026-04-10
1025Russia2026-04-25
1026France2026-04-14
1027Italy2026-04-15
1028Argentina2026-04-21
1029Japan2026-04-02
1030Canada2026-04-04
1031United Kingdom2026-04-23
1032United Kingdom2026-04-07
1033France2026-04-25
1034France2026-04-07
1035Canada2026-04-08
1036Brazil2026-04-12
1037India2026-04-02
1038Canada2026-04-29
1039Japan2026-04-02
1040Russia2026-04-16
1041Italy2026-04-14
1042Australia2026-04-20
1043Brazil2026-04-04
1044Brazil2026-04-05
1045Australia2026-04-17
1046Italy2026-04-21
1047Germany2026-04-08
1048Russia2026-04-23
1049India2026-04-12

On-Demand Data

NameIdCountryDate
Leja Caldarera1000Australia2026-04-27
Juan Wieser1001France2026-04-09
Johnson Sergi1002Russia2026-04-13
Jones Vocelka1003Japan2026-04-28
Chavez Briddick1004Japan2026-04-30
Aditya Kusko1005Japan2026-04-24
Maria Marrier1006Canada2026-04-10
Salvatore Stockham1007Japan2026-04-09
Francesco Shinko1008Canada2026-04-24
Mujtaba Nicka1009United Kingdom2026-04-02
Ricardo Gaucho1010Canada2026-04-15
Salvatore Stockham1011Australia2026-04-10
Ricardo Gaucho1012Germany2026-04-06
Cody Saylors1013Japan2026-04-24
Cody Saylors1014Brazil2026-04-18
Ricardo Gaucho1015Spain2026-04-21
Emily Whobrey1016Australia2026-04-29
Wickens Nestle1017Italy2026-04-30
Octavia Malet1018France2026-04-07
David Darakjy1019Russia2026-04-30
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Deepesh ChuiAustraliaXuxue Feng PROPOSAL
Jennifer AmigonFranceOnyama Limba UNQUALIFIED
Izzy GarufiArgentinaStephen Shaw UNQUALIFIED
Nicolas IturbideRussiaXuxue Feng UNQUALIFIED
Costa DilliardIndiaXuxue Feng NEW
Cody SaylorsItalyAnna Fali UNQUALIFIED
Darci PoquetteGermanyStephen Shaw NEGOTIATION
Aditya KuskoGermanyIoni Bowcher RENEWAL
Kaitlin OstroskyJapanAmy Elsner QUALIFIED
Sinclair WaycottCanadaAnna Fali PROPOSAL
Isabel BowleyRussiaAmy Elsner NEW
Juan WieserFranceBernardo Dominic RENEWAL
Isabel BowleyUnited KingdomStephen Shaw RENEWAL
Aditya KuskoFranceAnna Fali PROPOSAL
Aika InouyeIndiaElwin Sharvill NEW
Darci PoquetteBrazilAmy Elsner NEW
Jeanfrancois VenereSpainBernardo Dominic RENEWAL
Maria MarrierCanadaIvan Magalhaes UNQUALIFIED
James ButtCanadaOnyama Limba QUALIFIED
Nicolas IturbideGermanyStephen Shaw NEW
Greenwood BologniaItalyOnyama Limba QUALIFIED
Leja CaldareraUnited KingdomElwin Sharvill UNQUALIFIED
Jones VocelkaSpainIoni Bowcher NEW
Arvin AlbaresArgentinaBernardo Dominic QUALIFIED
Octavia MaletBrazilIvan Magalhaes RENEWAL
Jefferson SchemmerUnited KingdomElwin Sharvill QUALIFIED
Mayumi KolmetzItalyElwin Sharvill NEGOTIATION
Claire TollnerJapanIoni Bowcher UNQUALIFIED
Aditya KuskoItalyAnna Fali NEW
Leon OldroydItalyBernardo Dominic PROPOSAL
Munro FerenczAustraliaAmy Elsner UNQUALIFIED
David DarakjyIndiaIoni Bowcher QUALIFIED
Arvin AlbaresJapanStephen Shaw RENEWAL
Emily WhobreyCanadaAsiya Javayant PROPOSAL
Octavia MaletIndiaBernardo Dominic NEGOTIATION
Aruna FigeroaItalyIvan Magalhaes RENEWAL
Jones VocelkaIndiaAmy Elsner PROPOSAL
Nicolas IturbideIndiaBernardo Dominic QUALIFIED
Clifford RimUnited KingdomAsiya Javayant PROPOSAL
Johnson SergiItalyStephen Shaw PROPOSAL

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