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
Munro FerenczSpainXuxue Feng PROPOSAL
Jones VocelkaCanadaIoni Bowcher UNQUALIFIED
Kaitlin OstroskyCanadaElwin Sharvill NEW
Mujtaba NickaRussiaIvan Magalhaes UNQUALIFIED
Aruna FigeroaJapanOnyama Limba NEGOTIATION
Octavia MaletFranceAsiya Javayant RENEWAL
David DarakjySpainIvan Magalhaes RENEWAL
Emily WhobreyJapanAsiya Javayant RENEWAL
Leon OldroydGermanyOnyama Limba RENEWAL
Maisha RulapaughRussiaXuxue Feng UNQUALIFIED
Francesco ShinkoCanadaStephen Shaw RENEWAL
Rodrigues CampainRussiaOnyama Limba UNQUALIFIED
Jennifer AmigonUnited KingdomIvan Magalhaes NEGOTIATION
Aruna FigeroaFranceElwin Sharvill UNQUALIFIED
Maisha RulapaughItalyElwin Sharvill NEW
Ricardo GauchoBrazilIoni Bowcher RENEWAL
Faith GillianCanadaXuxue Feng RENEWAL
Emily WhobreySpainAnna Fali NEW
Juan WieserBrazilStephen Shaw UNQUALIFIED
Darci PoquetteIndiaBernardo Dominic NEGOTIATION
Johnson SergiUnited KingdomXuxue Feng RENEWAL
Tony FollerJapanElwin Sharvill QUALIFIED
Mujtaba NickaGermanyElwin Sharvill UNQUALIFIED
Wickens NestleIndiaStephen Shaw RENEWAL
Salvatore StockhamJapanAsiya Javayant QUALIFIED
Aika InouyeJapanBernardo Dominic QUALIFIED
Kaitlin OstroskyGermanyXuxue Feng QUALIFIED
Leon OldroydItalyOnyama Limba NEGOTIATION
Alejandro PerinBrazilAnna Fali UNQUALIFIED
Sinclair WaycottBrazilAsiya Javayant UNQUALIFIED
Alejandro PerinRussiaStephen Shaw NEGOTIATION
Aika InouyeIndiaXuxue Feng NEGOTIATION
Smith GlickFranceAnna Fali NEW
Clifford RimSpainIoni Bowcher NEW
Costa DilliardSpainBernardo Dominic RENEWAL
David DarakjyIndiaElwin Sharvill NEW
Johnson SergiRussiaElwin Sharvill PROPOSAL
Adams MorascaUnited KingdomOnyama Limba NEW
Jennifer AmigonSpainAsiya Javayant UNQUALIFIED
Jeanfrancois VenereCanadaAnna Fali RENEWAL
Morrow RutaCanadaXuxue Feng RENEWAL
Morrow RutaUnited KingdomAmy Elsner QUALIFIED
James ButtCanadaElwin Sharvill NEW
Johnson SergiItalyIvan Magalhaes UNQUALIFIED
Emily WhobreySpainAnna Fali NEW
Ashley DoeSpainXuxue Feng RENEWAL
Jefferson SchemmerGermanyIoni Bowcher UNQUALIFIED
Leja CaldareraRussiaIvan Magalhaes NEGOTIATION
Leja CaldareraItalyElwin Sharvill RENEWAL
Maisha RulapaughBrazilAmy Elsner PROPOSAL
Horizontal
NameCountryRepresentativeStatus
Darci PoquetteRussiaBernardo Dominic UNQUALIFIED
Jefferson SchemmerSpainIvan Magalhaes RENEWAL
Silvio SlusarskiIndiaIoni Bowcher RENEWAL
Julie StensethItalyBernardo Dominic RENEWAL
Claire TollnerItalyIoni Bowcher PROPOSAL
Maria MarrierItalyAsiya Javayant RENEWAL
Tony FollerBrazilAnna Fali QUALIFIED
Octavia MaletBrazilAmy Elsner NEGOTIATION
Aruna FigeroaArgentinaElwin Sharvill PROPOSAL
Jeanfrancois VenereItalyXuxue Feng QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleyArgentina2026-05-06Feiner Bros UNQUALIFIED44Elwin Sharvill
1001Ricardo GauchoBrazil2026-05-10Chapman, Ross E Esq NEGOTIATION31Asiya Javayant
1002Costa DilliardFrance2026-05-10Rousseaux, Michael Esq NEGOTIATION97Bernardo Dominic
1003Clifford RimUnited Kingdom2026-05-02Rangoni Of Florence RENEWAL89Onyama Limba
1004Chavez BriddickIndia2026-04-22Printing Dimensions PROPOSAL43Stephen Shaw
1005Kaitlin OstroskyItaly2026-05-03King, Christopher A Esq NEW57Asiya Javayant
1006Arvin AlbaresUnited Kingdom2026-04-28Dorl, James J Esq PROPOSAL80Ivan Magalhaes
1007James ButtFrance2026-04-24Rangoni Of Florence QUALIFIED65Bernardo Dominic
1008Mujtaba NickaUnited Kingdom2026-05-11Chanay, Jeffrey A Esq NEW75Xuxue Feng
1009Octavia MaletGermany2026-05-10Dorl, James J Esq NEGOTIATION97Ioni Bowcher
1010Leon OldroydFrance2026-05-11Morlong Associates QUALIFIED95Xuxue Feng
1011David DarakjyFrance2026-04-18Dorl, James J Esq NEGOTIATION46Stephen Shaw
1012Jeanfrancois VenereCanada2026-04-19Dorl, James J Esq QUALIFIED84Xuxue Feng
1013Misaki RoysterSpain2026-05-02Chanay, Jeffrey A Esq RENEWAL65Asiya Javayant
1014Maisha RulapaughJapan2026-05-12Feiner Bros UNQUALIFIED54Amy Elsner
1015Juan WieserArgentina2026-05-14Rousseaux, Michael Esq RENEWAL41Anna Fali
1016Claire TollnerSpain2026-05-11Chemel, James L Cpa QUALIFIED40Stephen Shaw
1017Isabel BowleyItaly2026-05-10Chemel, James L Cpa PROPOSAL21Elwin Sharvill
1018Alejandro PerinRussia2026-05-02Benton, John B Jr UNQUALIFIED59Asiya Javayant
1019Silvio SlusarskiUnited Kingdom2026-04-20Feltz Printing Service QUALIFIED89Stephen Shaw
1020Deepesh ChuiArgentina2026-04-30Buckley Miller Wright QUALIFIED71Onyama Limba
1021Cody SaylorsJapan2026-05-03Printing Dimensions QUALIFIED94Asiya Javayant
1022Jennifer AmigonRussia2026-05-10Dorl, James J Esq PROPOSAL7Onyama Limba
1023Greenwood BologniaUnited Kingdom2026-04-16Commercial Press NEW15Bernardo Dominic
1024Faith GillianIndia2026-04-21King, Christopher A Esq RENEWAL74Asiya Javayant
1025Darci PoquetteSpain2026-05-04Feiner Bros UNQUALIFIED56Onyama Limba
1026Murillo MaletItaly2026-04-20Benton, John B Jr UNQUALIFIED61Onyama Limba
1027Johnson SergiCanada2026-04-23Chanay, Jeffrey A Esq NEGOTIATION61Stephen Shaw
1028Nicolas IturbideBrazil2026-04-26Buckley Miller Wright PROPOSAL56Ioni Bowcher
1029Morrow RutaRussia2026-05-05Chemel, James L Cpa PROPOSAL61Bernardo Dominic
1030Alejandro PerinRussia2026-05-10Feltz Printing Service NEW46Elwin Sharvill
1031Jefferson SchemmerSpain2026-05-01Chanay, Jeffrey A Esq NEW54Anna Fali
1032Jefferson SchemmerJapan2026-05-01Dorl, James J Esq UNQUALIFIED94Stephen Shaw
1033Ricardo GauchoArgentina2026-04-28Morlong Associates PROPOSAL0Amy Elsner
1034Murillo MaletGermany2026-05-10Rangoni Of Florence RENEWAL71Asiya Javayant
1035Greenwood BologniaUnited Kingdom2026-05-12Morlong Associates NEW13Asiya Javayant
1036Emily WhobreyCanada2026-04-27Chapman, Ross E Esq UNQUALIFIED95Onyama Limba
1037Tony FollerBrazil2026-05-14Feltz Printing Service RENEWAL48Xuxue Feng
1038Nicolas IturbideItaly2026-05-12King, Christopher A Esq NEW37Elwin Sharvill
1039Aruna FigeroaCanada2026-04-24Rangoni Of Florence PROPOSAL96Ioni Bowcher
1040Sinclair WaycottBrazil2026-05-03Dorl, James J Esq PROPOSAL23Amy Elsner
1041Kaitlin OstroskyArgentina2026-04-17Rousseaux, Michael Esq RENEWAL53Elwin Sharvill
1042Nicolas IturbideJapan2026-05-03Chemel, James L Cpa QUALIFIED55Stephen Shaw
1043Tony FollerRussia2026-05-04King, Christopher A Esq NEW72Elwin Sharvill
1044Rodrigues CampainCanada2026-05-04Truhlar And Truhlar Attys NEGOTIATION17Bernardo Dominic
1045Ivar PaprockiJapan2026-05-01Benton, John B Jr RENEWAL19Ioni Bowcher
1046Juan WieserItaly2026-05-11Benton, John B Jr UNQUALIFIED30Asiya Javayant
1047Cody SaylorsSpain2026-05-04Rousseaux, Michael Esq RENEWAL54Bernardo Dominic
1048Silvio SlusarskiFrance2026-05-04Printing Dimensions NEGOTIATION68Asiya Javayant
1049Chavez BriddickUnited Kingdom2026-05-13Printing Dimensions UNQUALIFIED20Ivan Magalhaes
Frozen Rows
NameCountryRepresentativeStatus
Faith GillianSpainBernardo Dominic PROPOSAL
Cody SaylorsJapanBernardo Dominic PROPOSAL
Deepesh ChuiUnited KingdomElwin Sharvill RENEWAL
Isabel BowleyArgentinaAmy Elsner RENEWAL
Misaki RoysterRussiaAmy Elsner PROPOSAL
Johnson SergiBrazilAmy Elsner NEGOTIATION
Kadeem FlosiFranceIoni Bowcher PROPOSAL
Morrow RutaJapanAmy Elsner QUALIFIED
Claire TollnerItalyElwin Sharvill QUALIFIED
Greenwood BologniaSpainBernardo Dominic PROPOSAL
Adams MorascaItalyAmy Elsner PROPOSAL
Mayumi KolmetzJapanBernardo Dominic NEGOTIATION
Mujtaba NickaJapanAmy Elsner QUALIFIED
Morrow RutaRussiaAsiya Javayant UNQUALIFIED
James ButtSpainStephen Shaw RENEWAL
Murillo MaletArgentinaStephen Shaw NEW
Morrow RutaSpainStephen Shaw NEGOTIATION
Isabel BowleyArgentinaElwin Sharvill NEGOTIATION
Salvatore StockhamRussiaElwin Sharvill UNQUALIFIED
Greenwood BologniaCanadaAnna Fali NEW
Juan WieserArgentinaAmy Elsner PROPOSAL
David DarakjyItalyElwin Sharvill NEGOTIATION
Costa DilliardArgentinaAsiya Javayant UNQUALIFIED
Costa DilliardAustraliaIoni Bowcher NEGOTIATION
Silvio SlusarskiCanadaAsiya Javayant PROPOSAL
Stacey MacleadSpainBernardo Dominic UNQUALIFIED
Clifford RimAustraliaAsiya Javayant PROPOSAL
Wickens NestleRussiaStephen Shaw UNQUALIFIED
Maria MarrierItalyIvan Magalhaes PROPOSAL
Misaki RoysterAustraliaIvan Magalhaes UNQUALIFIED
Chavez BriddickGermanyStephen Shaw PROPOSAL
Alejandro PerinAustraliaElwin Sharvill UNQUALIFIED
Jennifer AmigonSpainStephen Shaw UNQUALIFIED
Darci PoquetteFranceIoni Bowcher PROPOSAL
Chavez BriddickJapanIvan Magalhaes PROPOSAL
Juan WieserIndiaOnyama Limba PROPOSAL
Maria MarrierJapanIoni Bowcher QUALIFIED
Aruna FigeroaAustraliaAsiya Javayant RENEWAL
Kaitlin OstroskySpainElwin Sharvill QUALIFIED
Isabel BowleyItalyStephen Shaw UNQUALIFIED
Darci PoquetteRussiaElwin Sharvill UNQUALIFIED
Isabel BowleyJapanIoni Bowcher UNQUALIFIED
Kadeem FlosiRussiaElwin Sharvill RENEWAL
Greenwood BologniaBrazilAmy Elsner UNQUALIFIED
Isabel BowleyFranceOnyama Limba NEGOTIATION
Faith GillianRussiaStephen Shaw PROPOSAL
Greenwood BologniaIndiaElwin Sharvill UNQUALIFIED
Aditya KuskoArgentinaAnna Fali NEW
Misaki RoysterArgentinaXuxue Feng QUALIFIED
Silvio SlusarskiAustraliaAsiya Javayant UNQUALIFIED
Frozen Columns
Name
Octavia Malet
Adams Morasca
Deepesh Chui
Ivar Paprocki
Smith Glick
Antonio Caudy
Greenwood Bolognia
Wickens Nestle
Aditya Kusko
James Butt
Adams Morasca
Izzy Garufi
Morrow Ruta
Izzy Garufi
Francesco Shinko
Emily Whobrey
Aika Inouye
Chavez Briddick
Aditya Kusko
Darci Poquette
Adams Morasca
Francesco Shinko
Chavez Briddick
Ricardo Gaucho
Morrow Ruta
Greenwood Bolognia
Cody Saylors
James Butt
Claire Tollner
Chavez Briddick
Kaitlin Ostrosky
Isabel Bowley
Octavia Malet
Izzy Garufi
Isabel Bowley
Chavez Briddick
Aditya Kusko
Munro Ferencz
Mayumi Kolmetz
Munro Ferencz
Ivar Paprocki
Alejandro Perin
Johnson Sergi
Isabel Bowley
Antonio Caudy
Izzy Garufi
Ivar Paprocki
James Butt
David Darakjy
Aditya Kusko
IdCountryDate
1000United Kingdom2026-05-08
1001Russia2026-05-04
1002Germany2026-04-25
1003Brazil2026-04-25
1004Italy2026-04-30
1005Russia2026-05-09
1006Japan2026-05-01
1007Japan2026-05-06
1008Italy2026-05-08
1009Argentina2026-04-28
1010United Kingdom2026-04-23
1011Russia2026-05-12
1012Germany2026-05-02
1013Japan2026-04-16
1014Australia2026-04-23
1015India2026-05-10
1016Russia2026-05-02
1017Brazil2026-04-23
1018United Kingdom2026-05-10
1019Italy2026-04-16
1020France2026-04-21
1021Germany2026-05-07
1022Italy2026-05-09
1023Italy2026-05-01
1024Brazil2026-04-29
1025Australia2026-04-18
1026Canada2026-05-01
1027Argentina2026-04-18
1028Brazil2026-05-01
1029Japan2026-04-19
1030Canada2026-05-01
1031Australia2026-04-29
1032United Kingdom2026-05-03
1033Russia2026-05-09
1034France2026-04-24
1035Canada2026-05-02
1036France2026-05-09
1037Italy2026-04-15
1038Germany2026-05-11
1039United Kingdom2026-04-22
1040United Kingdom2026-05-02
1041Japan2026-04-18
1042Canada2026-04-18
1043Russia2026-04-27
1044India2026-04-21
1045France2026-04-24
1046France2026-04-25
1047Spain2026-05-06
1048Argentina2026-05-12
1049Canada2026-04-30

On-Demand Data

NameIdCountryDate
Julie Stenseth1000Spain2026-04-15
Jeanfrancois Venere1001United Kingdom2026-04-16
Emily Whobrey1002Brazil2026-04-16
Jefferson Schemmer1003Japan2026-04-25
Leon Oldroyd1004Canada2026-04-16
Ricardo Gaucho1005Australia2026-04-15
Kaitlin Ostrosky1006Australia2026-05-07
Chavez Briddick1007France2026-05-12
Mujtaba Nicka1008India2026-04-15
Ivar Paprocki1009Japan2026-05-11
Morrow Ruta1010Italy2026-05-11
Maria Marrier1011Germany2026-04-22
Arvin Albares1012Brazil2026-04-20
Francesco Shinko1013Brazil2026-04-17
Aruna Figeroa1014Brazil2026-04-20
Maria Marrier1015United Kingdom2026-05-05
Claire Tollner1016Italy2026-05-04
Faith Gillian1017India2026-05-09
Alejandro Perin1018Australia2026-05-14
Mujtaba Nicka1019Germany2026-05-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Greenwood BologniaFranceIoni Bowcher RENEWAL
Leja CaldareraFranceStephen Shaw UNQUALIFIED
Maria MarrierArgentinaElwin Sharvill PROPOSAL
Ivar PaprockiItalyAmy Elsner NEGOTIATION
Smith GlickItalyAsiya Javayant UNQUALIFIED
Ashley DoeItalyOnyama Limba UNQUALIFIED
Ricardo GauchoJapanStephen Shaw QUALIFIED
Izzy GarufiArgentinaXuxue Feng RENEWAL
Antonio CaudyBrazilBernardo Dominic UNQUALIFIED
Morrow RutaIndiaBernardo Dominic NEGOTIATION
Adams MorascaSpainAmy Elsner NEGOTIATION
Costa DilliardUnited KingdomAmy Elsner UNQUALIFIED
Greenwood BologniaFranceXuxue Feng NEGOTIATION
Aika InouyeCanadaBernardo Dominic UNQUALIFIED
Silvio SlusarskiCanadaBernardo Dominic PROPOSAL
David DarakjyBrazilAmy Elsner PROPOSAL
Wickens NestleGermanyXuxue Feng PROPOSAL
Nicolas IturbideIndiaBernardo Dominic NEW
Jefferson SchemmerFranceElwin Sharvill RENEWAL
Silvio SlusarskiUnited KingdomIoni Bowcher NEGOTIATION
Julie StensethArgentinaAsiya Javayant NEW
Ivar PaprockiGermanyAnna Fali NEW
Clifford RimIndiaAmy Elsner PROPOSAL
Silvio SlusarskiSpainXuxue Feng NEGOTIATION
David DarakjyRussiaBernardo Dominic RENEWAL
Johnson SergiIndiaIoni Bowcher NEGOTIATION
Sinclair WaycottGermanyStephen Shaw PROPOSAL
Tony FollerUnited KingdomAmy Elsner PROPOSAL
Isabel BowleyBrazilBernardo Dominic RENEWAL
Nicolas IturbideFranceStephen Shaw RENEWAL
Morrow RutaItalyIvan Magalhaes QUALIFIED
Murillo MaletItalyStephen Shaw NEW
Ashley DoeUnited KingdomAsiya Javayant RENEWAL
Maria MarrierItalyAnna Fali NEW
Cody SaylorsCanadaOnyama Limba NEW
Mujtaba NickaItalyXuxue Feng PROPOSAL
Silvio SlusarskiAustraliaElwin Sharvill UNQUALIFIED
Aika InouyeJapanAsiya Javayant UNQUALIFIED
Isabel BowleyCanadaIoni Bowcher UNQUALIFIED
Juan WieserGermanyOnyama 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>