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
Aika InouyeRussiaAsiya Javayant UNQUALIFIED
Stacey MacleadSpainIvan Magalhaes UNQUALIFIED
Sinclair WaycottAustraliaAmy Elsner NEGOTIATION
Alejandro PerinSpainXuxue Feng NEGOTIATION
Munro FerenczIndiaAmy Elsner RENEWAL
Clifford RimBrazilIoni Bowcher NEW
David DarakjyBrazilXuxue Feng PROPOSAL
Cody SaylorsSpainAsiya Javayant UNQUALIFIED
Rodrigues CampainRussiaBernardo Dominic NEGOTIATION
Tony FollerCanadaElwin Sharvill PROPOSAL
Greenwood BologniaFranceXuxue Feng UNQUALIFIED
Antonio CaudyJapanStephen Shaw NEW
Sinclair WaycottItalyStephen Shaw NEGOTIATION
Leja CaldareraCanadaIvan Magalhaes UNQUALIFIED
Aruna FigeroaArgentinaStephen Shaw RENEWAL
Maisha RulapaughRussiaIoni Bowcher PROPOSAL
Maria MarrierGermanyStephen Shaw QUALIFIED
Morrow RutaUnited KingdomElwin Sharvill PROPOSAL
Aruna FigeroaItalyStephen Shaw PROPOSAL
Arvin AlbaresCanadaOnyama Limba NEGOTIATION
Leon OldroydRussiaIvan Magalhaes NEGOTIATION
Chavez BriddickJapanAmy Elsner PROPOSAL
Greenwood BologniaJapanAmy Elsner QUALIFIED
Morrow RutaRussiaBernardo Dominic PROPOSAL
Smith GlickArgentinaIoni Bowcher PROPOSAL
Izzy GarufiRussiaIoni Bowcher NEW
Darci PoquetteFranceIoni Bowcher QUALIFIED
David DarakjyBrazilIvan Magalhaes QUALIFIED
Jennifer AmigonUnited KingdomStephen Shaw QUALIFIED
Murillo MaletUnited KingdomXuxue Feng PROPOSAL
Leja CaldareraAustraliaIvan Magalhaes NEW
Aika InouyeIndiaIvan Magalhaes NEW
Emily WhobreyArgentinaElwin Sharvill PROPOSAL
Greenwood BologniaAustraliaStephen Shaw NEGOTIATION
Stacey MacleadIndiaBernardo Dominic PROPOSAL
Claire TollnerJapanIoni Bowcher NEW
James ButtFranceAmy Elsner QUALIFIED
Maisha RulapaughFranceElwin Sharvill PROPOSAL
Faith GillianIndiaElwin Sharvill UNQUALIFIED
Costa DilliardFranceXuxue Feng QUALIFIED
Chavez BriddickCanadaAsiya Javayant UNQUALIFIED
Isabel BowleyJapanXuxue Feng NEGOTIATION
Izzy GarufiUnited KingdomStephen Shaw UNQUALIFIED
Ashley DoeIndiaBernardo Dominic UNQUALIFIED
Ashley DoeItalyElwin Sharvill NEGOTIATION
Maria MarrierGermanyAsiya Javayant NEW
Maisha RulapaughIndiaIoni Bowcher QUALIFIED
Leja CaldareraIndiaElwin Sharvill QUALIFIED
Arvin AlbaresRussiaOnyama Limba NEW
Morrow RutaArgentinaBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia MaletArgentinaAnna Fali PROPOSAL
Jeanfrancois VenereItalyBernardo Dominic RENEWAL
Ashley DoeJapanIvan Magalhaes QUALIFIED
Wickens NestleJapanStephen Shaw PROPOSAL
Mayumi KolmetzItalyStephen Shaw NEW
Rodrigues CampainJapanIvan Magalhaes UNQUALIFIED
Julie StensethSpainIoni Bowcher QUALIFIED
Izzy GarufiUnited KingdomBernardo Dominic NEW
Misaki RoysterArgentinaXuxue Feng NEW
Octavia MaletGermanyBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ivar PaprockiAustralia2026-04-11King, Christopher A Esq NEGOTIATION95Stephen Shaw
1001Isabel BowleyJapan2026-04-27Commercial Press PROPOSAL15Asiya Javayant
1002Clifford RimItaly2026-04-06Dorl, James J Esq RENEWAL74Anna Fali
1003Jefferson SchemmerSpain2026-04-21Printing Dimensions PROPOSAL40Bernardo Dominic
1004Kadeem FlosiArgentina2026-04-15Rangoni Of Florence RENEWAL80Xuxue Feng
1005James ButtUnited Kingdom2026-04-11Dorl, James J Esq NEW4Ivan Magalhaes
1006Kaitlin OstroskyItaly2026-04-26Feiner Bros UNQUALIFIED79Anna Fali
1007Kadeem FlosiSpain2026-05-02Commercial Press UNQUALIFIED18Anna Fali
1008Arvin AlbaresRussia2026-04-07Commercial Press NEGOTIATION50Asiya Javayant
1009Misaki RoysterRussia2026-04-30Truhlar And Truhlar Attys RENEWAL81Onyama Limba
1010Murillo MaletArgentina2026-05-01Commercial Press RENEWAL21Onyama Limba
1011Francesco ShinkoUnited Kingdom2026-05-03Buckley Miller Wright UNQUALIFIED60Ivan Magalhaes
1012Emily WhobreyFrance2026-04-30Benton, John B Jr NEW72Ioni Bowcher
1013Ricardo GauchoIndia2026-04-06Benton, John B Jr NEW69Elwin Sharvill
1014Francesco ShinkoJapan2026-04-28Truhlar And Truhlar Attys QUALIFIED46Ioni Bowcher
1015Jeanfrancois VenereBrazil2026-04-05Feiner Bros NEW48Amy Elsner
1016Tony FollerBrazil2026-04-05Rousseaux, Michael Esq QUALIFIED67Bernardo Dominic
1017Mujtaba NickaUnited Kingdom2026-04-19Buckley Miller Wright NEW81Anna Fali
1018David DarakjyCanada2026-04-20Benton, John B Jr RENEWAL68Stephen Shaw
1019Stacey MacleadRussia2026-04-10Rangoni Of Florence QUALIFIED55Xuxue Feng
1020Octavia MaletUnited Kingdom2026-04-22Dorl, James J Esq RENEWAL57Ivan Magalhaes
1021Morrow RutaAustralia2026-04-23Chapman, Ross E Esq UNQUALIFIED79Stephen Shaw
1022Misaki RoysterJapan2026-05-02Chapman, Ross E Esq RENEWAL77Elwin Sharvill
1023Izzy GarufiSpain2026-04-16Feiner Bros QUALIFIED70Ioni Bowcher
1024Leon OldroydItaly2026-04-06King, Christopher A Esq QUALIFIED14Ivan Magalhaes
1025Ivar PaprockiAustralia2026-04-22Buckley Miller Wright PROPOSAL80Onyama Limba
1026Aika InouyeBrazil2026-04-08Feltz Printing Service UNQUALIFIED64Elwin Sharvill
1027Maisha RulapaughRussia2026-04-19King, Christopher A Esq NEW61Amy Elsner
1028Isabel BowleyBrazil2026-04-10King, Christopher A Esq NEW61Xuxue Feng
1029Nicolas IturbideArgentina2026-04-05Commercial Press PROPOSAL39Xuxue Feng
1030James ButtRussia2026-05-03Feiner Bros UNQUALIFIED35Stephen Shaw
1031Arvin AlbaresCanada2026-04-25Chemel, James L Cpa PROPOSAL49Ioni Bowcher
1032Costa DilliardItaly2026-04-30Feiner Bros RENEWAL59Ioni Bowcher
1033Stacey MacleadArgentina2026-04-08Printing Dimensions UNQUALIFIED88Anna Fali
1034Jones VocelkaAustralia2026-04-04Truhlar And Truhlar Attys NEGOTIATION87Stephen Shaw
1035David DarakjyItaly2026-04-28Feiner Bros QUALIFIED88Stephen Shaw
1036Adams MorascaFrance2026-04-09Feiner Bros QUALIFIED85Elwin Sharvill
1037Salvatore StockhamGermany2026-04-24Rousseaux, Michael Esq QUALIFIED30Ivan Magalhaes
1038Emily WhobreyRussia2026-04-13Buckley Miller Wright UNQUALIFIED34Asiya Javayant
1039Johnson SergiCanada2026-04-13Chanay, Jeffrey A Esq UNQUALIFIED14Xuxue Feng
1040Johnson SergiAustralia2026-04-20Truhlar And Truhlar Attys PROPOSAL56Amy Elsner
1041Arvin AlbaresUnited Kingdom2026-04-21Morlong Associates UNQUALIFIED22Ioni Bowcher
1042Aika InouyeFrance2026-04-22Morlong Associates NEW67Ivan Magalhaes
1043Maria MarrierItaly2026-04-29Feltz Printing Service NEW27Xuxue Feng
1044Wickens NestleUnited Kingdom2026-04-23Feiner Bros NEW44Elwin Sharvill
1045Wickens NestleGermany2026-05-01Chapman, Ross E Esq NEW48Elwin Sharvill
1046Murillo MaletSpain2026-04-23Chapman, Ross E Esq PROPOSAL46Bernardo Dominic
1047Cody SaylorsSpain2026-05-03Rousseaux, Michael Esq RENEWAL41Asiya Javayant
1048Mujtaba NickaItaly2026-04-20Truhlar And Truhlar Attys PROPOSAL92Stephen Shaw
1049Smith GlickGermany2026-04-16Dorl, James J Esq UNQUALIFIED57Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jones VocelkaArgentinaXuxue Feng PROPOSAL
James ButtBrazilBernardo Dominic NEGOTIATION
Francesco ShinkoAustraliaIoni Bowcher NEW
Juan WieserGermanyXuxue Feng RENEWAL
David DarakjyBrazilIvan Magalhaes UNQUALIFIED
Smith GlickCanadaAsiya Javayant RENEWAL
Octavia MaletJapanOnyama Limba NEGOTIATION
Alejandro PerinGermanyAmy Elsner PROPOSAL
Kaitlin OstroskyBrazilAsiya Javayant RENEWAL
Mayumi KolmetzSpainBernardo Dominic UNQUALIFIED
Sinclair WaycottBrazilElwin Sharvill UNQUALIFIED
Maisha RulapaughBrazilAmy Elsner NEW
Silvio SlusarskiArgentinaOnyama Limba PROPOSAL
Arvin AlbaresAustraliaXuxue Feng QUALIFIED
Antonio CaudyArgentinaXuxue Feng NEGOTIATION
Jones VocelkaUnited KingdomBernardo Dominic PROPOSAL
Deepesh ChuiArgentinaAnna Fali QUALIFIED
Tony FollerJapanAsiya Javayant RENEWAL
Stacey MacleadFranceStephen Shaw QUALIFIED
Johnson SergiIndiaOnyama Limba UNQUALIFIED
David DarakjyUnited KingdomStephen Shaw PROPOSAL
David DarakjyItalyOnyama Limba NEW
Francesco ShinkoArgentinaIoni Bowcher RENEWAL
Ashley DoeRussiaAmy Elsner NEW
Munro FerenczJapanIvan Magalhaes RENEWAL
Francesco ShinkoIndiaAmy Elsner RENEWAL
Kaitlin OstroskyUnited KingdomAnna Fali UNQUALIFIED
Emily WhobreySpainElwin Sharvill RENEWAL
Juan WieserRussiaStephen Shaw PROPOSAL
David DarakjyRussiaElwin Sharvill RENEWAL
Murillo MaletJapanAnna Fali QUALIFIED
Aika InouyeItalyIvan Magalhaes PROPOSAL
Kaitlin OstroskyBrazilStephen Shaw UNQUALIFIED
Octavia MaletArgentinaIvan Magalhaes NEW
Alejandro PerinJapanIoni Bowcher PROPOSAL
James ButtArgentinaXuxue Feng QUALIFIED
Jennifer AmigonUnited KingdomOnyama Limba QUALIFIED
Silvio SlusarskiRussiaIvan Magalhaes QUALIFIED
Munro FerenczIndiaIvan Magalhaes QUALIFIED
Munro FerenczRussiaOnyama Limba UNQUALIFIED
Aika InouyeCanadaXuxue Feng NEGOTIATION
Silvio SlusarskiFranceAsiya Javayant PROPOSAL
Leja CaldareraSpainElwin Sharvill NEGOTIATION
Tony FollerAustraliaXuxue Feng PROPOSAL
Octavia MaletIndiaXuxue Feng PROPOSAL
Kadeem FlosiFranceOnyama Limba RENEWAL
Jennifer AmigonCanadaXuxue Feng QUALIFIED
Alejandro PerinArgentinaAnna Fali PROPOSAL
Costa DilliardSpainBernardo Dominic UNQUALIFIED
Salvatore StockhamFranceBernardo Dominic QUALIFIED
Frozen Columns
Name
Leja Caldarera
Kadeem Flosi
Izzy Garufi
Claire Tollner
Munro Ferencz
David Darakjy
Ashley Doe
Juan Wieser
Ashley Doe
Clifford Rim
Salvatore Stockham
Jeanfrancois Venere
Adams Morasca
Aruna Figeroa
Mayumi Kolmetz
Octavia Malet
Leon Oldroyd
Arvin Albares
Salvatore Stockham
Izzy Garufi
Antonio Caudy
Jefferson Schemmer
Cody Saylors
Claire Tollner
Aruna Figeroa
Leon Oldroyd
Isabel Bowley
Adams Morasca
Julie Stenseth
Jefferson Schemmer
Faith Gillian
Faith Gillian
Silvio Slusarski
Maria Marrier
Chavez Briddick
Leon Oldroyd
Maria Marrier
Adams Morasca
Maria Marrier
Chavez Briddick
Claire Tollner
Smith Glick
Rodrigues Campain
Deepesh Chui
Chavez Briddick
Jones Vocelka
Morrow Ruta
Aruna Figeroa
Cody Saylors
Morrow Ruta
IdCountryDate
1000Argentina2026-04-22
1001Russia2026-04-29
1002Argentina2026-04-17
1003United Kingdom2026-04-23
1004Japan2026-04-10
1005Russia2026-04-07
1006Argentina2026-04-30
1007Canada2026-04-08
1008India2026-04-27
1009Russia2026-04-12
1010Spain2026-04-26
1011Australia2026-04-30
1012Italy2026-05-02
1013France2026-04-11
1014Brazil2026-04-09
1015Germany2026-04-25
1016Germany2026-04-29
1017Canada2026-05-03
1018Spain2026-04-29
1019India2026-04-20
1020India2026-04-26
1021Spain2026-04-26
1022Australia2026-04-18
1023Canada2026-04-15
1024Japan2026-04-30
1025Spain2026-04-25
1026Japan2026-04-11
1027Brazil2026-04-06
1028Russia2026-04-30
1029India2026-04-21
1030Germany2026-04-19
1031India2026-04-07
1032United Kingdom2026-04-09
1033Italy2026-04-26
1034India2026-04-30
1035Brazil2026-04-24
1036Brazil2026-04-20
1037France2026-04-11
1038Canada2026-05-01
1039Australia2026-04-28
1040France2026-04-08
1041Italy2026-04-12
1042France2026-04-26
1043Canada2026-04-18
1044Italy2026-05-01
1045Spain2026-04-13
1046Argentina2026-04-09
1047France2026-04-25
1048India2026-04-14
1049France2026-04-09

On-Demand Data

NameIdCountryDate
Mujtaba Nicka1000Japan2026-05-02
Leon Oldroyd1001India2026-05-02
Cody Saylors1002United Kingdom2026-04-22
Julie Stenseth1003United Kingdom2026-04-16
Mujtaba Nicka1004Spain2026-04-10
Ivar Paprocki1005Spain2026-04-13
Mujtaba Nicka1006Russia2026-04-25
Aditya Kusko1007Germany2026-04-16
Julie Stenseth1008India2026-04-20
Claire Tollner1009Spain2026-04-18
Ashley Doe1010Italy2026-04-27
Jones Vocelka1011Brazil2026-04-08
Clifford Rim1012Canada2026-04-08
Sinclair Waycott1013United Kingdom2026-04-04
Clifford Rim1014Australia2026-04-20
Adams Morasca1015Argentina2026-04-08
Munro Ferencz1016Germany2026-04-25
Cody Saylors1017Australia2026-04-04
Kadeem Flosi1018Italy2026-04-25
Leja Caldarera1019Germany2026-04-11
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow RutaIndiaBernardo Dominic PROPOSAL
Munro FerenczBrazilAsiya Javayant UNQUALIFIED
Kadeem FlosiGermanyAmy Elsner PROPOSAL
Rodrigues CampainArgentinaAmy Elsner RENEWAL
Morrow RutaJapanAmy Elsner RENEWAL
Ivar PaprockiItalyIvan Magalhaes PROPOSAL
Kaitlin OstroskyFranceAmy Elsner NEGOTIATION
Julie StensethUnited KingdomAmy Elsner NEGOTIATION
Mayumi KolmetzCanadaIvan Magalhaes RENEWAL
Francesco ShinkoSpainOnyama Limba NEGOTIATION
Francesco ShinkoJapanOnyama Limba QUALIFIED
Chavez BriddickCanadaAnna Fali QUALIFIED
Murillo MaletUnited KingdomXuxue Feng NEW
Maisha RulapaughRussiaIoni Bowcher NEGOTIATION
Claire TollnerCanadaAmy Elsner PROPOSAL
Arvin AlbaresJapanOnyama Limba QUALIFIED
Darci PoquetteBrazilAnna Fali NEGOTIATION
Morrow RutaGermanyAnna Fali NEW
Darci PoquetteArgentinaIvan Magalhaes QUALIFIED
Mayumi KolmetzArgentinaIvan Magalhaes RENEWAL
Ivar PaprockiSpainIoni Bowcher RENEWAL
Arvin AlbaresJapanAmy Elsner NEGOTIATION
Smith GlickGermanyElwin Sharvill QUALIFIED
Ricardo GauchoArgentinaOnyama Limba RENEWAL
Stacey MacleadCanadaAmy Elsner QUALIFIED
Nicolas IturbideFranceAnna Fali UNQUALIFIED
Cody SaylorsCanadaIoni Bowcher PROPOSAL
Mayumi KolmetzFranceXuxue Feng RENEWAL
Aruna FigeroaIndiaAsiya Javayant UNQUALIFIED
David DarakjyUnited KingdomAnna Fali RENEWAL
Kaitlin OstroskyAustraliaElwin Sharvill NEW
Smith GlickRussiaElwin Sharvill NEW
Jennifer AmigonSpainStephen Shaw QUALIFIED
Aditya KuskoArgentinaIvan Magalhaes NEGOTIATION
Maisha RulapaughAustraliaElwin Sharvill RENEWAL
Francesco ShinkoSpainIoni Bowcher UNQUALIFIED
Francesco ShinkoFranceAnna Fali QUALIFIED
Aditya KuskoIndiaIvan Magalhaes NEGOTIATION
Clifford RimArgentinaElwin Sharvill QUALIFIED
Adams MorascaBrazilOnyama Limba QUALIFIED

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