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
Wickens NestleCanadaXuxue Feng NEGOTIATION
Chavez BriddickArgentinaAnna Fali NEW
Wickens NestleIndiaElwin Sharvill RENEWAL
Stacey MacleadRussiaElwin Sharvill QUALIFIED
Ricardo GauchoItalyIvan Magalhaes NEGOTIATION
Rodrigues CampainAustraliaAnna Fali NEW
Stacey MacleadFranceElwin Sharvill PROPOSAL
Silvio SlusarskiSpainAnna Fali PROPOSAL
Jones VocelkaFranceAmy Elsner NEW
Octavia MaletSpainBernardo Dominic NEW
Leja CaldareraSpainXuxue Feng NEW
Alejandro PerinJapanIoni Bowcher NEGOTIATION
Adams MorascaBrazilIvan Magalhaes NEW
Chavez BriddickArgentinaBernardo Dominic RENEWAL
Leja CaldareraGermanyAsiya Javayant RENEWAL
Chavez BriddickCanadaXuxue Feng QUALIFIED
Johnson SergiUnited KingdomXuxue Feng RENEWAL
Salvatore StockhamRussiaAnna Fali RENEWAL
Claire TollnerArgentinaIvan Magalhaes RENEWAL
Faith GillianRussiaStephen Shaw RENEWAL
Murillo MaletAustraliaAsiya Javayant PROPOSAL
Julie StensethItalyBernardo Dominic NEGOTIATION
Darci PoquetteAustraliaIvan Magalhaes UNQUALIFIED
Alejandro PerinSpainBernardo Dominic QUALIFIED
Silvio SlusarskiSpainAsiya Javayant UNQUALIFIED
Isabel BowleyJapanAnna Fali NEW
Ricardo GauchoGermanyAnna Fali QUALIFIED
David DarakjySpainIoni Bowcher PROPOSAL
Jefferson SchemmerRussiaAnna Fali NEW
Kaitlin OstroskyCanadaAnna Fali PROPOSAL
James ButtBrazilIvan Magalhaes QUALIFIED
Jeanfrancois VenereFranceXuxue Feng PROPOSAL
Sinclair WaycottItalyAnna Fali RENEWAL
Cody SaylorsIndiaIvan Magalhaes QUALIFIED
Octavia MaletSpainAmy Elsner RENEWAL
Johnson SergiUnited KingdomOnyama Limba RENEWAL
Octavia MaletRussiaIvan Magalhaes PROPOSAL
James ButtItalyOnyama Limba NEW
Morrow RutaArgentinaXuxue Feng NEGOTIATION
Octavia MaletBrazilStephen Shaw QUALIFIED
Chavez BriddickSpainXuxue Feng NEGOTIATION
Isabel BowleyJapanOnyama Limba NEGOTIATION
Costa DilliardIndiaElwin Sharvill QUALIFIED
Stacey MacleadJapanIvan Magalhaes RENEWAL
Arvin AlbaresGermanyElwin Sharvill PROPOSAL
Murillo MaletJapanAsiya Javayant PROPOSAL
Morrow RutaCanadaStephen Shaw NEW
Wickens NestleSpainAmy Elsner NEGOTIATION
Leja CaldareraSpainXuxue Feng RENEWAL
Salvatore StockhamIndiaStephen Shaw QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Mujtaba NickaSpainAnna Fali UNQUALIFIED
Antonio CaudyFranceIoni Bowcher NEGOTIATION
Darci PoquetteUnited KingdomAsiya Javayant PROPOSAL
Aditya KuskoCanadaXuxue Feng PROPOSAL
Claire TollnerSpainAsiya Javayant QUALIFIED
Morrow RutaCanadaAsiya Javayant NEW
Alejandro PerinBrazilIvan Magalhaes RENEWAL
Arvin AlbaresRussiaAnna Fali RENEWAL
Claire TollnerFranceXuxue Feng RENEWAL
Maisha RulapaughBrazilElwin Sharvill PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria MarrierSpain2026-05-17Chapman, Ross E Esq PROPOSAL56Bernardo Dominic
1001Kadeem FlosiUnited Kingdom2026-05-24Dorl, James J Esq UNQUALIFIED14Bernardo Dominic
1002Mayumi KolmetzRussia2026-05-14Truhlar And Truhlar Attys RENEWAL32Amy Elsner
1003Emily WhobreySpain2026-05-09Feiner Bros QUALIFIED22Onyama Limba
1004Leja CaldareraArgentina2026-05-21Rousseaux, Michael Esq UNQUALIFIED89Amy Elsner
1005Jennifer AmigonIndia2026-06-04Benton, John B Jr PROPOSAL47Asiya Javayant
1006Antonio CaudyAustralia2026-05-13Truhlar And Truhlar Attys RENEWAL98Asiya Javayant
1007David DarakjyJapan2026-05-18Chapman, Ross E Esq PROPOSAL58Elwin Sharvill
1008Leja CaldareraRussia2026-05-18Feiner Bros RENEWAL29Stephen Shaw
1009Julie StensethGermany2026-06-03Rousseaux, Michael Esq UNQUALIFIED17Asiya Javayant
1010Costa DilliardAustralia2026-05-17Rousseaux, Michael Esq QUALIFIED81Amy Elsner
1011Misaki RoysterJapan2026-06-06Benton, John B Jr RENEWAL28Xuxue Feng
1012Cody SaylorsItaly2026-05-31Chemel, James L Cpa UNQUALIFIED83Ivan Magalhaes
1013Emily WhobreyRussia2026-05-30Chanay, Jeffrey A Esq QUALIFIED97Ivan Magalhaes
1014Murillo MaletItaly2026-05-28Buckley Miller Wright RENEWAL20Anna Fali
1015Francesco ShinkoUnited Kingdom2026-05-13Chapman, Ross E Esq QUALIFIED1Xuxue Feng
1016Deepesh ChuiArgentina2026-05-18Rousseaux, Michael Esq UNQUALIFIED24Xuxue Feng
1017Murillo MaletUnited Kingdom2026-05-23Chanay, Jeffrey A Esq RENEWAL63Onyama Limba
1018Aruna FigeroaJapan2026-05-24Feiner Bros NEW59Amy Elsner
1019Maisha RulapaughIndia2026-06-02Feiner Bros NEW38Ivan Magalhaes
1020Alejandro PerinItaly2026-05-19Dorl, James J Esq NEW31Asiya Javayant
1021Darci PoquetteCanada2026-05-26King, Christopher A Esq UNQUALIFIED54Xuxue Feng
1022Francesco ShinkoJapan2026-05-29Chemel, James L Cpa PROPOSAL22Ioni Bowcher
1023Arvin AlbaresUnited Kingdom2026-06-01Morlong Associates RENEWAL54Anna Fali
1024Adams MorascaFrance2026-06-04Chapman, Ross E Esq QUALIFIED25Xuxue Feng
1025Francesco ShinkoCanada2026-05-18Chanay, Jeffrey A Esq QUALIFIED69Xuxue Feng
1026Mayumi KolmetzIndia2026-06-01Chemel, James L Cpa NEGOTIATION55Bernardo Dominic
1027Maria MarrierUnited Kingdom2026-05-24Truhlar And Truhlar Attys QUALIFIED96Bernardo Dominic
1028Chavez BriddickIndia2026-05-30Feltz Printing Service UNQUALIFIED52Asiya Javayant
1029Claire TollnerUnited Kingdom2026-05-25Chemel, James L Cpa QUALIFIED42Anna Fali
1030Jennifer AmigonGermany2026-05-12Chanay, Jeffrey A Esq QUALIFIED46Xuxue Feng
1031Darci PoquetteArgentina2026-05-30Dorl, James J Esq UNQUALIFIED96Bernardo Dominic
1032Jeanfrancois VenereUnited Kingdom2026-05-30Feltz Printing Service PROPOSAL6Xuxue Feng
1033Kadeem FlosiAustralia2026-05-11King, Christopher A Esq NEGOTIATION25Onyama Limba
1034Mayumi KolmetzRussia2026-05-28Chapman, Ross E Esq NEW46Xuxue Feng
1035Nicolas IturbideArgentina2026-05-30Printing Dimensions QUALIFIED77Ioni Bowcher
1036Greenwood BologniaBrazil2026-06-02King, Christopher A Esq UNQUALIFIED88Bernardo Dominic
1037Juan WieserBrazil2026-05-26Printing Dimensions QUALIFIED44Bernardo Dominic
1038Nicolas IturbideAustralia2026-06-03Benton, John B Jr NEW12Bernardo Dominic
1039Julie StensethJapan2026-06-05King, Christopher A Esq NEW95Elwin Sharvill
1040Greenwood BologniaIndia2026-05-31Rangoni Of Florence UNQUALIFIED67Elwin Sharvill
1041Maisha RulapaughCanada2026-06-06Commercial Press QUALIFIED43Bernardo Dominic
1042Claire TollnerFrance2026-06-06Commercial Press PROPOSAL3Amy Elsner
1043Salvatore StockhamGermany2026-05-15Chanay, Jeffrey A Esq NEW17Ivan Magalhaes
1044Leon OldroydItaly2026-06-01Chapman, Ross E Esq QUALIFIED85Bernardo Dominic
1045Izzy GarufiFrance2026-05-26King, Christopher A Esq QUALIFIED2Onyama Limba
1046Smith GlickBrazil2026-05-13Dorl, James J Esq NEW86Ioni Bowcher
1047Johnson SergiUnited Kingdom2026-05-29Chanay, Jeffrey A Esq UNQUALIFIED79Ioni Bowcher
1048Tony FollerBrazil2026-05-15Feiner Bros PROPOSAL89Amy Elsner
1049Faith GillianUnited Kingdom2026-05-23Printing Dimensions PROPOSAL68Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Munro FerenczRussiaOnyama Limba UNQUALIFIED
Emily WhobreyItalyBernardo Dominic PROPOSAL
Stacey MacleadCanadaOnyama Limba NEGOTIATION
Morrow RutaSpainAmy Elsner NEGOTIATION
Kaitlin OstroskyBrazilAsiya Javayant RENEWAL
Octavia MaletIndiaStephen Shaw QUALIFIED
Sinclair WaycottJapanIvan Magalhaes NEGOTIATION
Jefferson SchemmerJapanAsiya Javayant NEGOTIATION
Nicolas IturbideCanadaAmy Elsner PROPOSAL
Adams MorascaArgentinaIvan Magalhaes NEGOTIATION
Octavia MaletItalyXuxue Feng PROPOSAL
Aruna FigeroaUnited KingdomIvan Magalhaes PROPOSAL
Kadeem FlosiGermanyBernardo Dominic NEW
Misaki RoysterSpainAnna Fali QUALIFIED
Francesco ShinkoArgentinaAsiya Javayant UNQUALIFIED
Aruna FigeroaItalyAmy Elsner NEW
Jefferson SchemmerArgentinaAsiya Javayant QUALIFIED
Ricardo GauchoArgentinaBernardo Dominic PROPOSAL
Deepesh ChuiItalyAmy Elsner UNQUALIFIED
Faith GillianBrazilXuxue Feng UNQUALIFIED
David DarakjyGermanyXuxue Feng QUALIFIED
Julie StensethBrazilAmy Elsner RENEWAL
Isabel BowleySpainXuxue Feng QUALIFIED
Stacey MacleadCanadaOnyama Limba QUALIFIED
Johnson SergiUnited KingdomElwin Sharvill UNQUALIFIED
Izzy GarufiUnited KingdomAnna Fali UNQUALIFIED
Mujtaba NickaBrazilAmy Elsner RENEWAL
Tony FollerFranceStephen Shaw NEW
Juan WieserRussiaAmy Elsner NEGOTIATION
Izzy GarufiItalyAsiya Javayant QUALIFIED
Costa DilliardGermanyElwin Sharvill RENEWAL
Arvin AlbaresFranceAmy Elsner NEGOTIATION
Jones VocelkaAustraliaBernardo Dominic UNQUALIFIED
Maisha RulapaughIndiaAsiya Javayant UNQUALIFIED
Munro FerenczGermanyAsiya Javayant QUALIFIED
Arvin AlbaresCanadaOnyama Limba NEW
Izzy GarufiArgentinaBernardo Dominic QUALIFIED
Jefferson SchemmerIndiaIoni Bowcher PROPOSAL
Smith GlickJapanStephen Shaw NEW
Francesco ShinkoFranceAnna Fali RENEWAL
Jeanfrancois VenereIndiaOnyama Limba PROPOSAL
Clifford RimGermanyOnyama Limba RENEWAL
Adams MorascaBrazilOnyama Limba NEGOTIATION
Ivar PaprockiGermanyBernardo Dominic PROPOSAL
Jeanfrancois VenereRussiaElwin Sharvill NEGOTIATION
David DarakjyBrazilBernardo Dominic RENEWAL
Costa DilliardJapanAmy Elsner UNQUALIFIED
Isabel BowleyArgentinaAmy Elsner QUALIFIED
Izzy GarufiFranceAmy Elsner PROPOSAL
Adams MorascaItalyAsiya Javayant QUALIFIED
Frozen Columns
Name
Cody Saylors
Aika Inouye
Faith Gillian
Juan Wieser
Aditya Kusko
Deepesh Chui
Jefferson Schemmer
Salvatore Stockham
Antonio Caudy
Faith Gillian
Kadeem Flosi
Antonio Caudy
Maria Marrier
David Darakjy
Aditya Kusko
Ivar Paprocki
Murillo Malet
Mayumi Kolmetz
Greenwood Bolognia
Kaitlin Ostrosky
David Darakjy
Rodrigues Campain
Mujtaba Nicka
Octavia Malet
Nicolas Iturbide
Stacey Maclead
Misaki Royster
Aditya Kusko
Clifford Rim
Misaki Royster
Murillo Malet
Munro Ferencz
Ashley Doe
Mujtaba Nicka
Cody Saylors
Morrow Ruta
Murillo Malet
Ashley Doe
Chavez Briddick
Emily Whobrey
Julie Stenseth
Adams Morasca
Ashley Doe
Jennifer Amigon
Jefferson Schemmer
Nicolas Iturbide
James Butt
Ashley Doe
Darci Poquette
David Darakjy
IdCountryDate
1000Russia2026-05-29
1001Australia2026-05-21
1002Brazil2026-05-16
1003Italy2026-05-14
1004Spain2026-05-20
1005Italy2026-06-02
1006Russia2026-05-08
1007United Kingdom2026-05-11
1008Canada2026-05-23
1009Russia2026-05-10
1010Germany2026-06-04
1011Russia2026-05-14
1012Brazil2026-05-26
1013Australia2026-05-17
1014Spain2026-05-23
1015Italy2026-05-31
1016Argentina2026-05-21
1017Spain2026-05-27
1018France2026-05-24
1019Russia2026-05-21
1020France2026-05-22
1021Russia2026-05-10
1022Japan2026-05-11
1023Japan2026-05-29
1024Spain2026-05-29
1025Spain2026-05-15
1026Germany2026-06-05
1027India2026-05-12
1028Argentina2026-05-22
1029Italy2026-05-12
1030India2026-05-16
1031Spain2026-06-03
1032Spain2026-05-28
1033Italy2026-05-28
1034Canada2026-05-15
1035India2026-06-03
1036France2026-05-29
1037Canada2026-05-29
1038France2026-05-24
1039Russia2026-05-24
1040Spain2026-05-09
1041Germany2026-05-20
1042Canada2026-05-28
1043India2026-05-13
1044Australia2026-06-05
1045Australia2026-05-12
1046Japan2026-06-01
1047India2026-05-16
1048Brazil2026-05-11
1049Japan2026-06-01

On-Demand Data

NameIdCountryDate
Salvatore Stockham1000Australia2026-05-14
Adams Morasca1001Spain2026-05-09
James Butt1002Russia2026-05-30
David Darakjy1003Japan2026-05-15
Jefferson Schemmer1004Spain2026-05-18
Wickens Nestle1005Canada2026-05-29
Deepesh Chui1006France2026-06-04
Salvatore Stockham1007France2026-05-15
Julie Stenseth1008Germany2026-06-06
Leja Caldarera1009Australia2026-05-11
Jennifer Amigon1010Germany2026-05-14
Deepesh Chui1011Germany2026-05-27
Aruna Figeroa1012Argentina2026-05-18
Munro Ferencz1013France2026-05-11
Aditya Kusko1014Australia2026-05-25
Maisha Rulapaugh1015Brazil2026-06-02
Wickens Nestle1016Japan2026-05-11
Ashley Doe1017Russia2026-05-10
Leon Oldroyd1018Argentina2026-05-10
Ricardo Gaucho1019Germany2026-05-28
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas IturbideJapanBernardo Dominic NEGOTIATION
Misaki RoysterRussiaAmy Elsner UNQUALIFIED
Jones VocelkaJapanIoni Bowcher QUALIFIED
Munro FerenczAustraliaElwin Sharvill NEGOTIATION
Ashley DoeSpainIoni Bowcher RENEWAL
Izzy GarufiAustraliaAnna Fali PROPOSAL
Faith GillianSpainAmy Elsner PROPOSAL
Maria MarrierUnited KingdomElwin Sharvill UNQUALIFIED
Jefferson SchemmerJapanAmy Elsner NEW
Clifford RimFranceAnna Fali NEGOTIATION
Clifford RimSpainStephen Shaw PROPOSAL
Jefferson SchemmerAustraliaOnyama Limba QUALIFIED
Aika InouyeIndiaOnyama Limba RENEWAL
Smith GlickFranceAnna Fali QUALIFIED
Tony FollerRussiaIoni Bowcher QUALIFIED
Maria MarrierItalyBernardo Dominic NEW
Darci PoquetteSpainAmy Elsner UNQUALIFIED
Smith GlickRussiaXuxue Feng RENEWAL
Aruna FigeroaArgentinaAmy Elsner PROPOSAL
Rodrigues CampainItalyElwin Sharvill NEGOTIATION
Smith GlickJapanAsiya Javayant UNQUALIFIED
Jones VocelkaIndiaIvan Magalhaes UNQUALIFIED
Stacey MacleadRussiaStephen Shaw UNQUALIFIED
Maria MarrierItalyAmy Elsner UNQUALIFIED
Misaki RoysterGermanyXuxue Feng PROPOSAL
Maisha RulapaughBrazilXuxue Feng NEW
Aruna FigeroaArgentinaAsiya Javayant UNQUALIFIED
Salvatore StockhamGermanyAmy Elsner NEW
Clifford RimBrazilBernardo Dominic NEGOTIATION
Murillo MaletGermanyIoni Bowcher NEGOTIATION
Nicolas IturbideIndiaAmy Elsner NEW
Faith GillianIndiaAsiya Javayant UNQUALIFIED
Kadeem FlosiIndiaOnyama Limba RENEWAL
Greenwood BologniaBrazilAmy Elsner UNQUALIFIED
Jeanfrancois VenereSpainElwin Sharvill PROPOSAL
Adams MorascaUnited KingdomOnyama Limba PROPOSAL
Wickens NestleJapanOnyama Limba QUALIFIED
Smith GlickGermanyAsiya Javayant NEW
Munro FerenczRussiaBernardo Dominic NEW
Mujtaba NickaAustraliaAsiya Javayant 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>