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 FollerBrazilAsiya Javayant QUALIFIED
Stacey MacleadIndiaIoni Bowcher NEW
Deepesh ChuiUnited KingdomAmy Elsner RENEWAL
Emily WhobreySpainAsiya Javayant NEGOTIATION
Morrow RutaGermanyIvan Magalhaes UNQUALIFIED
Claire TollnerJapanBernardo Dominic PROPOSAL
Stacey MacleadArgentinaAmy Elsner PROPOSAL
Kaitlin OstroskyJapanAmy Elsner PROPOSAL
Kaitlin OstroskyIndiaXuxue Feng RENEWAL
Sinclair WaycottIndiaBernardo Dominic PROPOSAL
Isabel BowleyArgentinaXuxue Feng RENEWAL
Costa DilliardAustraliaAmy Elsner RENEWAL
Rodrigues CampainSpainBernardo Dominic UNQUALIFIED
Kadeem FlosiIndiaBernardo Dominic UNQUALIFIED
Faith GillianCanadaBernardo Dominic UNQUALIFIED
Jones VocelkaUnited KingdomElwin Sharvill PROPOSAL
Leon OldroydRussiaIvan Magalhaes NEW
Claire TollnerItalyAsiya Javayant QUALIFIED
Sinclair WaycottAustraliaAmy Elsner UNQUALIFIED
Clifford RimBrazilBernardo Dominic QUALIFIED
Ashley DoeBrazilIoni Bowcher NEW
Arvin AlbaresGermanyAmy Elsner QUALIFIED
Jefferson SchemmerAustraliaBernardo Dominic QUALIFIED
Juan WieserBrazilIvan Magalhaes UNQUALIFIED
Nicolas IturbideFranceXuxue Feng UNQUALIFIED
Arvin AlbaresItalyOnyama Limba QUALIFIED
Jeanfrancois VenereGermanyIoni Bowcher NEGOTIATION
Cody SaylorsAustraliaOnyama Limba NEW
Jefferson SchemmerArgentinaBernardo Dominic RENEWAL
Claire TollnerBrazilAsiya Javayant QUALIFIED
Izzy GarufiSpainIvan Magalhaes RENEWAL
Salvatore StockhamGermanyOnyama Limba PROPOSAL
Wickens NestleRussiaAmy Elsner NEGOTIATION
Wickens NestleUnited KingdomAsiya Javayant NEGOTIATION
Kaitlin OstroskyItalyIvan Magalhaes QUALIFIED
Stacey MacleadGermanyAmy Elsner PROPOSAL
Clifford RimAustraliaStephen Shaw UNQUALIFIED
Antonio CaudyAustraliaOnyama Limba NEW
David DarakjyIndiaElwin Sharvill RENEWAL
Salvatore StockhamGermanyAnna Fali NEGOTIATION
Adams MorascaJapanAsiya Javayant UNQUALIFIED
Mayumi KolmetzFranceOnyama Limba RENEWAL
Francesco ShinkoAustraliaElwin Sharvill RENEWAL
Isabel BowleyCanadaOnyama Limba NEGOTIATION
Aika InouyeGermanyIoni Bowcher RENEWAL
Salvatore StockhamItalyElwin Sharvill PROPOSAL
Sinclair WaycottGermanyIvan Magalhaes UNQUALIFIED
Emily WhobreyJapanAsiya Javayant NEW
Johnson SergiUnited KingdomOnyama Limba PROPOSAL
Sinclair WaycottItalyBernardo Dominic QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Octavia MaletSpainIoni Bowcher NEW
Isabel BowleyAustraliaAsiya Javayant PROPOSAL
Chavez BriddickJapanIoni Bowcher NEW
Murillo MaletJapanXuxue Feng PROPOSAL
Jennifer AmigonGermanyXuxue Feng UNQUALIFIED
Alejandro PerinSpainIvan Magalhaes NEW
Rodrigues CampainCanadaAmy Elsner RENEWAL
Leja CaldareraCanadaIvan Magalhaes NEGOTIATION
Aditya KuskoGermanyXuxue Feng RENEWAL
Nicolas IturbideItalyIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Tony FollerArgentina2026-05-21Feiner Bros PROPOSAL4Asiya Javayant
1001Ashley DoeFrance2026-05-31Feltz Printing Service NEGOTIATION53Elwin Sharvill
1002Emily WhobreyIndia2026-05-29Feiner Bros NEW40Amy Elsner
1003Leja CaldareraIndia2026-05-11Morlong Associates PROPOSAL40Onyama Limba
1004Alejandro PerinIndia2026-05-24Rousseaux, Michael Esq QUALIFIED79Elwin Sharvill
1005Aruna FigeroaAustralia2026-05-24Rousseaux, Michael Esq NEGOTIATION46Ioni Bowcher
1006Alejandro PerinUnited Kingdom2026-05-31Chapman, Ross E Esq PROPOSAL41Amy Elsner
1007Alejandro PerinRussia2026-06-01Chanay, Jeffrey A Esq QUALIFIED17Asiya Javayant
1008Emily WhobreyAustralia2026-05-19Feltz Printing Service NEGOTIATION61Elwin Sharvill
1009Kadeem FlosiItaly2026-05-09Chapman, Ross E Esq QUALIFIED62Elwin Sharvill
1010Misaki RoysterBrazil2026-05-09Buckley Miller Wright QUALIFIED36Amy Elsner
1011Murillo MaletCanada2026-05-30Commercial Press QUALIFIED20Ioni Bowcher
1012Silvio SlusarskiItaly2026-06-04Truhlar And Truhlar Attys NEW97Elwin Sharvill
1013Darci PoquetteUnited Kingdom2026-05-20Feiner Bros NEGOTIATION77Ioni Bowcher
1014Mayumi KolmetzItaly2026-05-13Chemel, James L Cpa QUALIFIED75Ivan Magalhaes
1015Nicolas IturbideIndia2026-05-21Rousseaux, Michael Esq RENEWAL5Ioni Bowcher
1016Sinclair WaycottSpain2026-05-19Chanay, Jeffrey A Esq RENEWAL88Anna Fali
1017Stacey MacleadUnited Kingdom2026-05-18Rangoni Of Florence PROPOSAL55Bernardo Dominic
1018Faith GillianArgentina2026-05-23Rousseaux, Michael Esq RENEWAL84Ioni Bowcher
1019Morrow RutaItaly2026-05-28Commercial Press PROPOSAL42Amy Elsner
1020Maria MarrierCanada2026-05-19Printing Dimensions PROPOSAL88Xuxue Feng
1021Alejandro PerinSpain2026-05-14Printing Dimensions NEW0Asiya Javayant
1022Aruna FigeroaRussia2026-05-31Printing Dimensions NEW22Amy Elsner
1023Kaitlin OstroskyAustralia2026-05-10Feltz Printing Service UNQUALIFIED46Bernardo Dominic
1024James ButtRussia2026-05-12Benton, John B Jr NEW14Asiya Javayant
1025Izzy GarufiItaly2026-06-06Chapman, Ross E Esq NEGOTIATION36Asiya Javayant
1026Nicolas IturbideBrazil2026-05-23Chanay, Jeffrey A Esq QUALIFIED31Anna Fali
1027Tony FollerIndia2026-05-25Chapman, Ross E Esq NEGOTIATION38Xuxue Feng
1028Leja CaldareraAustralia2026-05-08Truhlar And Truhlar Attys RENEWAL79Ioni Bowcher
1029Mujtaba NickaBrazil2026-05-28Benton, John B Jr NEGOTIATION51Bernardo Dominic
1030Julie StensethBrazil2026-05-27Printing Dimensions NEGOTIATION47Xuxue Feng
1031Wickens NestleBrazil2026-06-03King, Christopher A Esq QUALIFIED20Elwin Sharvill
1032Kaitlin OstroskyArgentina2026-05-24Commercial Press NEGOTIATION73Xuxue Feng
1033Adams MorascaAustralia2026-05-08Dorl, James J Esq NEGOTIATION40Bernardo Dominic
1034Kadeem FlosiUnited Kingdom2026-05-22Feltz Printing Service RENEWAL88Bernardo Dominic
1035Francesco ShinkoAustralia2026-05-20Feiner Bros NEGOTIATION86Bernardo Dominic
1036Nicolas IturbideSpain2026-05-13Chemel, James L Cpa UNQUALIFIED72Ivan Magalhaes
1037Jennifer AmigonIndia2026-05-09Benton, John B Jr QUALIFIED43Xuxue Feng
1038Stacey MacleadAustralia2026-06-03Buckley Miller Wright NEW37Ivan Magalhaes
1039Jeanfrancois VenereFrance2026-05-29King, Christopher A Esq PROPOSAL33Amy Elsner
1040Claire TollnerUnited Kingdom2026-05-28Feltz Printing Service NEW75Elwin Sharvill
1041David DarakjyCanada2026-05-24King, Christopher A Esq NEW64Amy Elsner
1042Stacey MacleadRussia2026-06-01Chemel, James L Cpa UNQUALIFIED71Ivan Magalhaes
1043Izzy GarufiIndia2026-05-18Morlong Associates QUALIFIED53Stephen Shaw
1044Jones VocelkaAustralia2026-05-15Printing Dimensions PROPOSAL36Elwin Sharvill
1045Maisha RulapaughItaly2026-05-12Chanay, Jeffrey A Esq RENEWAL66Amy Elsner
1046Tony FollerUnited Kingdom2026-05-25Chapman, Ross E Esq QUALIFIED50Amy Elsner
1047Emily WhobreyBrazil2026-05-16Chanay, Jeffrey A Esq NEW43Ioni Bowcher
1048David DarakjyAustralia2026-05-16Chemel, James L Cpa UNQUALIFIED81Ivan Magalhaes
1049Darci PoquetteRussia2026-05-26Commercial Press QUALIFIED63Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Silvio SlusarskiItalyStephen Shaw NEGOTIATION
Sinclair WaycottJapanOnyama Limba NEGOTIATION
James ButtRussiaOnyama Limba RENEWAL
Francesco ShinkoAustraliaAmy Elsner UNQUALIFIED
Juan WieserUnited KingdomAnna Fali UNQUALIFIED
Adams MorascaGermanyBernardo Dominic RENEWAL
Stacey MacleadAustraliaStephen Shaw RENEWAL
James ButtBrazilOnyama Limba NEW
Darci PoquetteFranceAnna Fali PROPOSAL
Isabel BowleyAustraliaElwin Sharvill PROPOSAL
Morrow RutaSpainStephen Shaw RENEWAL
Greenwood BologniaRussiaAsiya Javayant RENEWAL
Kaitlin OstroskyBrazilAnna Fali PROPOSAL
Faith GillianArgentinaIoni Bowcher PROPOSAL
Emily WhobreyIndiaStephen Shaw UNQUALIFIED
Jones VocelkaItalyAsiya Javayant PROPOSAL
Cody SaylorsBrazilOnyama Limba QUALIFIED
Aika InouyeBrazilOnyama Limba RENEWAL
Deepesh ChuiJapanStephen Shaw UNQUALIFIED
Mujtaba NickaItalyAnna Fali RENEWAL
Greenwood BologniaRussiaAnna Fali QUALIFIED
Antonio CaudyFranceXuxue Feng UNQUALIFIED
Chavez BriddickSpainStephen Shaw RENEWAL
Emily WhobreyFranceElwin Sharvill QUALIFIED
Tony FollerFranceBernardo Dominic RENEWAL
Clifford RimBrazilAmy Elsner NEGOTIATION
Kaitlin OstroskyIndiaXuxue Feng NEW
Cody SaylorsIndiaBernardo Dominic UNQUALIFIED
Faith GillianRussiaStephen Shaw NEGOTIATION
Johnson SergiGermanyIvan Magalhaes QUALIFIED
Julie StensethItalyAsiya Javayant PROPOSAL
Jeanfrancois VenereRussiaAnna Fali NEGOTIATION
Murillo MaletAustraliaOnyama Limba UNQUALIFIED
Kaitlin OstroskyIndiaElwin Sharvill RENEWAL
Francesco ShinkoGermanyBernardo Dominic PROPOSAL
Mayumi KolmetzAustraliaElwin Sharvill NEGOTIATION
Munro FerenczAustraliaAsiya Javayant NEW
Smith GlickGermanyAsiya Javayant UNQUALIFIED
Jefferson SchemmerGermanyStephen Shaw UNQUALIFIED
Deepesh ChuiBrazilBernardo Dominic RENEWAL
Mayumi KolmetzFranceAsiya Javayant NEGOTIATION
James ButtArgentinaBernardo Dominic PROPOSAL
Juan WieserIndiaBernardo Dominic PROPOSAL
Adams MorascaUnited KingdomAsiya Javayant PROPOSAL
Clifford RimBrazilAsiya Javayant NEW
Stacey MacleadSpainBernardo Dominic NEGOTIATION
Ashley DoeUnited KingdomIoni Bowcher RENEWAL
Costa DilliardCanadaStephen Shaw QUALIFIED
Jones VocelkaSpainOnyama Limba QUALIFIED
Octavia MaletSpainXuxue Feng PROPOSAL
Frozen Columns
Name
Rodrigues Campain
Francesco Shinko
Darci Poquette
Morrow Ruta
Francesco Shinko
Stacey Maclead
Francesco Shinko
Nicolas Iturbide
Julie Stenseth
Smith Glick
Salvatore Stockham
Maisha Rulapaugh
Jeanfrancois Venere
Salvatore Stockham
Aika Inouye
Octavia Malet
Wickens Nestle
Silvio Slusarski
Johnson Sergi
Ricardo Gaucho
Antonio Caudy
Leja Caldarera
Silvio Slusarski
Chavez Briddick
Murillo Malet
Alejandro Perin
Kaitlin Ostrosky
Arvin Albares
Tony Foller
Munro Ferencz
Misaki Royster
Jeanfrancois Venere
Maisha Rulapaugh
Murillo Malet
Nicolas Iturbide
Rodrigues Campain
Izzy Garufi
Wickens Nestle
Morrow Ruta
Misaki Royster
Stacey Maclead
Aditya Kusko
Smith Glick
Costa Dilliard
Johnson Sergi
Sinclair Waycott
Tony Foller
Chavez Briddick
Chavez Briddick
Johnson Sergi
IdCountryDate
1000Italy2026-06-03
1001France2026-05-27
1002Brazil2026-05-10
1003Brazil2026-05-28
1004United Kingdom2026-05-12
1005India2026-06-01
1006Canada2026-05-09
1007Spain2026-06-03
1008Australia2026-05-09
1009Argentina2026-05-27
1010Canada2026-05-30
1011Canada2026-06-05
1012Italy2026-06-02
1013Spain2026-05-11
1014Brazil2026-05-18
1015United Kingdom2026-05-22
1016United Kingdom2026-05-10
1017Canada2026-05-26
1018Brazil2026-05-13
1019Argentina2026-05-08
1020Spain2026-05-31
1021Japan2026-05-11
1022Italy2026-05-25
1023Japan2026-05-11
1024France2026-06-06
1025France2026-06-05
1026Germany2026-05-26
1027France2026-06-06
1028France2026-05-15
1029Brazil2026-06-02
1030United Kingdom2026-05-25
1031Germany2026-05-15
1032Brazil2026-05-17
1033United Kingdom2026-06-06
1034India2026-06-01
1035India2026-05-24
1036Russia2026-05-26
1037Russia2026-05-31
1038Spain2026-06-02
1039Canada2026-05-26
1040France2026-05-26
1041Brazil2026-05-15
1042Germany2026-06-03
1043Italy2026-05-31
1044Brazil2026-05-09
1045Germany2026-06-03
1046Germany2026-05-28
1047Spain2026-06-03
1048Australia2026-05-22
1049Spain2026-06-04

On-Demand Data

NameIdCountryDate
Costa Dilliard1000France2026-05-22
Antonio Caudy1001India2026-06-02
Emily Whobrey1002Australia2026-05-16
Antonio Caudy1003United Kingdom2026-06-06
Adams Morasca1004Spain2026-06-04
Smith Glick1005Germany2026-05-24
Morrow Ruta1006France2026-05-20
David Darakjy1007India2026-05-16
Arvin Albares1008Argentina2026-05-27
Emily Whobrey1009Russia2026-05-16
Antonio Caudy1010Japan2026-05-18
Tony Foller1011Australia2026-05-21
Darci Poquette1012Japan2026-05-23
Adams Morasca1013France2026-05-13
Rodrigues Campain1014Germany2026-05-15
Maisha Rulapaugh1015Italy2026-06-02
David Darakjy1016Argentina2026-05-21
Kadeem Flosi1017Australia2026-06-03
Stacey Maclead1018Australia2026-05-24
Aika Inouye1019India2026-06-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Mujtaba NickaAustraliaIvan Magalhaes NEW
Francesco ShinkoIndiaIvan Magalhaes NEW
Maisha RulapaughJapanXuxue Feng NEW
Maisha RulapaughJapanStephen Shaw RENEWAL
Francesco ShinkoBrazilXuxue Feng NEGOTIATION
Jones VocelkaFranceOnyama Limba QUALIFIED
Deepesh ChuiCanadaAnna Fali RENEWAL
James ButtAustraliaIoni Bowcher NEW
Chavez BriddickUnited KingdomElwin Sharvill NEW
Johnson SergiItalyBernardo Dominic NEGOTIATION
Ashley DoeGermanyOnyama Limba RENEWAL
Francesco ShinkoFranceIvan Magalhaes NEW
Munro FerenczCanadaBernardo Dominic UNQUALIFIED
Silvio SlusarskiUnited KingdomStephen Shaw PROPOSAL
Silvio SlusarskiRussiaXuxue Feng PROPOSAL
Juan WieserJapanBernardo Dominic NEGOTIATION
Darci PoquetteCanadaIoni Bowcher QUALIFIED
Emily WhobreyIndiaStephen Shaw QUALIFIED
Maisha RulapaughFranceAmy Elsner PROPOSAL
Smith GlickGermanyXuxue Feng QUALIFIED
Mujtaba NickaItalyStephen Shaw NEW
Ivar PaprockiFranceIoni Bowcher PROPOSAL
Clifford RimUnited KingdomIvan Magalhaes NEW
Jones VocelkaArgentinaStephen Shaw RENEWAL
Izzy GarufiIndiaIvan Magalhaes NEGOTIATION
Francesco ShinkoFranceStephen Shaw NEGOTIATION
Tony FollerArgentinaStephen Shaw PROPOSAL
Johnson SergiCanadaStephen Shaw RENEWAL
Costa DilliardUnited KingdomIvan Magalhaes UNQUALIFIED
Leja CaldareraSpainAnna Fali NEW
Aditya KuskoRussiaElwin Sharvill NEGOTIATION
Salvatore StockhamUnited KingdomIvan Magalhaes PROPOSAL
Costa DilliardAustraliaStephen Shaw RENEWAL
Sinclair WaycottRussiaAmy Elsner UNQUALIFIED
Nicolas IturbideUnited KingdomStephen Shaw NEGOTIATION
Greenwood BologniaGermanyOnyama Limba NEW
Chavez BriddickIndiaIvan Magalhaes UNQUALIFIED
Cody SaylorsFranceStephen Shaw UNQUALIFIED
Jones VocelkaArgentinaAmy Elsner RENEWAL
David DarakjyBrazilBernardo Dominic 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>