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
Julie StensethGermanyXuxue Feng NEGOTIATION
Rodrigues CampainFranceAnna Fali QUALIFIED
Cody SaylorsGermanyStephen Shaw QUALIFIED
James ButtRussiaAsiya Javayant NEGOTIATION
Ricardo GauchoAustraliaAmy Elsner QUALIFIED
Jefferson SchemmerGermanyAmy Elsner NEGOTIATION
Aruna FigeroaCanadaAmy Elsner NEGOTIATION
Jones VocelkaBrazilAmy Elsner NEW
Ricardo GauchoSpainBernardo Dominic UNQUALIFIED
Misaki RoysterItalyIoni Bowcher QUALIFIED
Munro FerenczJapanIvan Magalhaes NEGOTIATION
Maisha RulapaughJapanXuxue Feng UNQUALIFIED
Costa DilliardIndiaBernardo Dominic UNQUALIFIED
Emily WhobreyGermanyIvan Magalhaes PROPOSAL
Greenwood BologniaFranceXuxue Feng NEGOTIATION
Kadeem FlosiRussiaAnna Fali RENEWAL
Leon OldroydRussiaAmy Elsner RENEWAL
Claire TollnerArgentinaStephen Shaw RENEWAL
Costa DilliardGermanyBernardo Dominic PROPOSAL
Aditya KuskoSpainXuxue Feng RENEWAL
Antonio CaudyRussiaStephen Shaw NEW
Munro FerenczIndiaAsiya Javayant PROPOSAL
Jefferson SchemmerRussiaOnyama Limba NEW
Leja CaldareraSpainAmy Elsner RENEWAL
Smith GlickCanadaIoni Bowcher NEGOTIATION
Cody SaylorsSpainAsiya Javayant UNQUALIFIED
Silvio SlusarskiBrazilBernardo Dominic NEW
Aruna FigeroaItalyAnna Fali NEGOTIATION
Ivar PaprockiAustraliaBernardo Dominic RENEWAL
Clifford RimGermanyAnna Fali RENEWAL
Isabel BowleyUnited KingdomIvan Magalhaes PROPOSAL
Izzy GarufiRussiaElwin Sharvill UNQUALIFIED
Sinclair WaycottGermanyElwin Sharvill UNQUALIFIED
Juan WieserFranceStephen Shaw UNQUALIFIED
Sinclair WaycottBrazilStephen Shaw QUALIFIED
Sinclair WaycottIndiaIvan Magalhaes NEW
Rodrigues CampainCanadaAnna Fali QUALIFIED
James ButtJapanIoni Bowcher UNQUALIFIED
Aika InouyeUnited KingdomXuxue Feng NEW
Julie StensethFranceIoni Bowcher UNQUALIFIED
Chavez BriddickUnited KingdomBernardo Dominic NEGOTIATION
Mayumi KolmetzBrazilAmy Elsner UNQUALIFIED
Maisha RulapaughAustraliaBernardo Dominic UNQUALIFIED
Sinclair WaycottIndiaIvan Magalhaes PROPOSAL
Arvin AlbaresSpainIvan Magalhaes QUALIFIED
Mayumi KolmetzIndiaAmy Elsner NEGOTIATION
Maria MarrierItalyIoni Bowcher QUALIFIED
Silvio SlusarskiUnited KingdomAnna Fali UNQUALIFIED
Juan WieserBrazilIoni Bowcher NEW
Jefferson SchemmerJapanAmy Elsner RENEWAL
Horizontal
NameCountryRepresentativeStatus
Alejandro PerinArgentinaElwin Sharvill QUALIFIED
Jeanfrancois VenereCanadaElwin Sharvill RENEWAL
Emily WhobreyArgentinaElwin Sharvill QUALIFIED
Arvin AlbaresSpainAnna Fali RENEWAL
Jones VocelkaRussiaAsiya Javayant NEW
Darci PoquetteSpainAmy Elsner NEW
Aditya KuskoBrazilElwin Sharvill QUALIFIED
Claire TollnerSpainIoni Bowcher NEGOTIATION
Aditya KuskoIndiaAnna Fali PROPOSAL
Octavia MaletAustraliaBernardo Dominic RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Cody SaylorsAustralia2025-09-19Chemel, James L Cpa RENEWAL94Asiya Javayant
1001Ivar PaprockiRussia2025-09-10King, Christopher A Esq PROPOSAL29Asiya Javayant
1002David DarakjyIndia2025-09-20Truhlar And Truhlar Attys NEGOTIATION71Amy Elsner
1003David DarakjyRussia2025-09-14Dorl, James J Esq UNQUALIFIED0Bernardo Dominic
1004Misaki RoysterItaly2025-09-06Printing Dimensions UNQUALIFIED30Onyama Limba
1005Ivar PaprockiItaly2025-09-21Buckley Miller Wright QUALIFIED68Asiya Javayant
1006Faith GillianGermany2025-09-03Chanay, Jeffrey A Esq NEGOTIATION79Xuxue Feng
1007Murillo MaletIndia2025-09-04Dorl, James J Esq QUALIFIED71Ivan Magalhaes
1008Adams MorascaCanada2025-08-30Chemel, James L Cpa UNQUALIFIED91Amy Elsner
1009Ivar PaprockiFrance2025-09-25Truhlar And Truhlar Attys UNQUALIFIED97Bernardo Dominic
1010Mayumi KolmetzCanada2025-09-09Feltz Printing Service RENEWAL64Amy Elsner
1011Octavia MaletSpain2025-09-09Printing Dimensions NEW20Onyama Limba
1012Darci PoquetteBrazil2025-09-04Morlong Associates RENEWAL46Asiya Javayant
1013Aika InouyeSpain2025-09-25Dorl, James J Esq RENEWAL95Asiya Javayant
1014Salvatore StockhamItaly2025-09-10Morlong Associates NEGOTIATION96Onyama Limba
1015Julie StensethAustralia2025-09-17Rousseaux, Michael Esq NEGOTIATION24Bernardo Dominic
1016Darci PoquetteBrazil2025-09-24King, Christopher A Esq NEW30Ivan Magalhaes
1017Jeanfrancois VenereSpain2025-09-04Dorl, James J Esq UNQUALIFIED29Ioni Bowcher
1018Aruna FigeroaJapan2025-09-02Commercial Press UNQUALIFIED0Stephen Shaw
1019Adams MorascaIndia2025-09-19Morlong Associates PROPOSAL69Anna Fali
1020Jefferson SchemmerUnited Kingdom2025-09-03Commercial Press NEGOTIATION28Ivan Magalhaes
1021Juan WieserCanada2025-09-23Morlong Associates PROPOSAL71Anna Fali
1022Ivar PaprockiGermany2025-09-15Chapman, Ross E Esq PROPOSAL84Ioni Bowcher
1023Ricardo GauchoGermany2025-09-06Buckley Miller Wright RENEWAL60Amy Elsner
1024Octavia MaletCanada2025-09-24Truhlar And Truhlar Attys PROPOSAL96Onyama Limba
1025Deepesh ChuiUnited Kingdom2025-09-07Chapman, Ross E Esq PROPOSAL84Stephen Shaw
1026Aruna FigeroaBrazil2025-09-08Feiner Bros UNQUALIFIED36Elwin Sharvill
1027Aruna FigeroaArgentina2025-09-14Benton, John B Jr QUALIFIED82Onyama Limba
1028James ButtCanada2025-09-19Benton, John B Jr NEW95Bernardo Dominic
1029Jeanfrancois VenereCanada2025-09-03King, Christopher A Esq NEGOTIATION79Ivan Magalhaes
1030Cody SaylorsBrazil2025-08-30Commercial Press RENEWAL82Anna Fali
1031Aruna FigeroaGermany2025-09-26Printing Dimensions PROPOSAL61Ivan Magalhaes
1032Leja CaldareraGermany2025-09-14Commercial Press RENEWAL0Amy Elsner
1033Aruna FigeroaGermany2025-09-17Buckley Miller Wright NEGOTIATION61Xuxue Feng
1034Stacey MacleadItaly2025-08-29Chapman, Ross E Esq QUALIFIED79Bernardo Dominic
1035Arvin AlbaresAustralia2025-09-09Dorl, James J Esq QUALIFIED48Onyama Limba
1036Juan WieserRussia2025-09-13Rangoni Of Florence PROPOSAL26Xuxue Feng
1037Silvio SlusarskiSpain2025-09-16Printing Dimensions PROPOSAL48Asiya Javayant
1038Jefferson SchemmerBrazil2025-09-26Printing Dimensions PROPOSAL69Ioni Bowcher
1039Arvin AlbaresCanada2025-09-07Benton, John B Jr UNQUALIFIED9Xuxue Feng
1040Leon OldroydArgentina2025-09-10Printing Dimensions PROPOSAL93Xuxue Feng
1041Kadeem FlosiFrance2025-09-12King, Christopher A Esq UNQUALIFIED91Xuxue Feng
1042Francesco ShinkoSpain2025-09-20King, Christopher A Esq NEGOTIATION64Bernardo Dominic
1043Silvio SlusarskiJapan2025-09-05Rangoni Of Florence UNQUALIFIED6Ivan Magalhaes
1044Salvatore StockhamBrazil2025-09-24Buckley Miller Wright NEGOTIATION62Xuxue Feng
1045Clifford RimJapan2025-09-02Commercial Press QUALIFIED29Ioni Bowcher
1046Aditya KuskoGermany2025-08-31Commercial Press NEGOTIATION49Ivan Magalhaes
1047Isabel BowleyIndia2025-09-07Rousseaux, Michael Esq RENEWAL40Bernardo Dominic
1048Leon OldroydBrazil2025-09-16Rangoni Of Florence UNQUALIFIED13Asiya Javayant
1049Jennifer AmigonRussia2025-09-07Benton, John B Jr QUALIFIED41Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Leon OldroydCanadaStephen Shaw QUALIFIED
Maisha RulapaughAustraliaAmy Elsner PROPOSAL
Aditya KuskoUnited KingdomIvan Magalhaes PROPOSAL
Silvio SlusarskiUnited KingdomAmy Elsner QUALIFIED
Ashley DoeBrazilXuxue Feng QUALIFIED
Arvin AlbaresGermanyXuxue Feng PROPOSAL
Smith GlickUnited KingdomElwin Sharvill NEW
Leja CaldareraSpainStephen Shaw QUALIFIED
Leja CaldareraUnited KingdomStephen Shaw NEGOTIATION
Alejandro PerinUnited KingdomBernardo Dominic NEW
Morrow RutaRussiaIvan Magalhaes NEGOTIATION
Darci PoquetteRussiaIvan Magalhaes RENEWAL
Ashley DoeRussiaAnna Fali NEW
Jeanfrancois VenereSpainXuxue Feng UNQUALIFIED
Costa DilliardAustraliaIoni Bowcher RENEWAL
Francesco ShinkoJapanXuxue Feng RENEWAL
James ButtRussiaElwin Sharvill PROPOSAL
Leon OldroydCanadaElwin Sharvill RENEWAL
Sinclair WaycottIndiaBernardo Dominic QUALIFIED
Juan WieserCanadaAmy Elsner UNQUALIFIED
Julie StensethSpainElwin Sharvill RENEWAL
Cody SaylorsGermanyXuxue Feng RENEWAL
Cody SaylorsCanadaAmy Elsner NEGOTIATION
Sinclair WaycottArgentinaIoni Bowcher RENEWAL
Ashley DoeCanadaXuxue Feng NEW
Cody SaylorsArgentinaAsiya Javayant NEGOTIATION
Juan WieserBrazilXuxue Feng UNQUALIFIED
Aruna FigeroaGermanyStephen Shaw QUALIFIED
Rodrigues CampainCanadaAnna Fali NEGOTIATION
Jeanfrancois VenereJapanBernardo Dominic QUALIFIED
Jeanfrancois VenereArgentinaAnna Fali NEW
Kaitlin OstroskyAustraliaAsiya Javayant NEGOTIATION
Munro FerenczAustraliaElwin Sharvill NEW
Munro FerenczArgentinaAnna Fali PROPOSAL
Jeanfrancois VenereItalyElwin Sharvill QUALIFIED
Rodrigues CampainArgentinaIoni Bowcher PROPOSAL
Claire TollnerFranceXuxue Feng NEGOTIATION
Munro FerenczGermanyIvan Magalhaes UNQUALIFIED
Kaitlin OstroskyBrazilAmy Elsner NEGOTIATION
Sinclair WaycottRussiaXuxue Feng UNQUALIFIED
Juan WieserBrazilElwin Sharvill RENEWAL
Claire TollnerArgentinaStephen Shaw QUALIFIED
Wickens NestleIndiaOnyama Limba NEGOTIATION
Adams MorascaRussiaOnyama Limba RENEWAL
Rodrigues CampainItalyIvan Magalhaes PROPOSAL
Tony FollerItalyElwin Sharvill UNQUALIFIED
Izzy GarufiRussiaXuxue Feng UNQUALIFIED
Aditya KuskoFranceBernardo Dominic PROPOSAL
Murillo MaletGermanyOnyama Limba PROPOSAL
Rodrigues CampainFranceBernardo Dominic NEGOTIATION
Frozen Columns
Name
Emily Whobrey
Emily Whobrey
Antonio Caudy
Juan Wieser
Maria Marrier
Claire Tollner
Mayumi Kolmetz
Jeanfrancois Venere
Julie Stenseth
Francesco Shinko
Aditya Kusko
Jones Vocelka
Claire Tollner
Kaitlin Ostrosky
Maria Marrier
Adams Morasca
Faith Gillian
Kadeem Flosi
Aditya Kusko
Ricardo Gaucho
Greenwood Bolognia
Francesco Shinko
Octavia Malet
Silvio Slusarski
Smith Glick
Sinclair Waycott
David Darakjy
Jennifer Amigon
Leon Oldroyd
Ivar Paprocki
Leja Caldarera
Isabel Bowley
Stacey Maclead
Mayumi Kolmetz
Isabel Bowley
Arvin Albares
Leon Oldroyd
Francesco Shinko
Smith Glick
Salvatore Stockham
Izzy Garufi
Nicolas Iturbide
James Butt
Salvatore Stockham
Sinclair Waycott
Deepesh Chui
Jeanfrancois Venere
Ashley Doe
Smith Glick
James Butt
IdCountryDate
1000Spain2025-09-05
1001United Kingdom2025-09-18
1002Spain2025-09-06
1003Canada2025-09-16
1004Germany2025-08-28
1005Argentina2025-09-16
1006India2025-09-07
1007Italy2025-09-02
1008Canada2025-09-09
1009United Kingdom2025-09-14
1010Brazil2025-09-10
1011Canada2025-08-30
1012France2025-09-18
1013United Kingdom2025-09-18
1014Brazil2025-09-05
1015Russia2025-08-30
1016Russia2025-09-20
1017Argentina2025-09-12
1018Russia2025-09-10
1019Brazil2025-09-20
1020Russia2025-08-31
1021Spain2025-08-30
1022Argentina2025-09-05
1023Canada2025-09-01
1024Italy2025-09-13
1025Germany2025-09-03
1026Spain2025-09-23
1027Argentina2025-09-24
1028Spain2025-09-09
1029Germany2025-08-30
1030United Kingdom2025-09-04
1031France2025-09-15
1032Japan2025-09-01
1033United Kingdom2025-09-25
1034United Kingdom2025-09-17
1035Canada2025-09-03
1036France2025-09-12
1037Italy2025-09-20
1038Russia2025-09-17
1039Russia2025-08-31
1040Canada2025-08-31
1041Argentina2025-09-08
1042India2025-09-23
1043Italy2025-09-12
1044Brazil2025-09-01
1045Germany2025-09-07
1046Japan2025-09-23
1047Australia2025-09-08
1048Russia2025-08-29
1049Brazil2025-09-02

On-Demand Data

NameIdCountryDate
Wickens Nestle1000France2025-09-10
Ivar Paprocki1001Brazil2025-09-05
Rodrigues Campain1002Russia2025-09-11
Silvio Slusarski1003France2025-09-23
Claire Tollner1004Japan2025-09-19
Mayumi Kolmetz1005Spain2025-09-15
Salvatore Stockham1006France2025-09-06
Munro Ferencz1007India2025-08-29
Aditya Kusko1008Spain2025-09-05
Aruna Figeroa1009Japan2025-09-14
Murillo Malet1010Spain2025-09-20
Greenwood Bolognia1011United Kingdom2025-09-17
Faith Gillian1012Australia2025-09-20
David Darakjy1013India2025-09-01
Maria Marrier1014Canada2025-09-11
James Butt1015Germany2025-09-04
Stacey Maclead1016Germany2025-09-05
Ashley Doe1017Russia2025-09-13
Antonio Caudy1018Brazil2025-09-20
Munro Ferencz1019Russia2025-09-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jones VocelkaIndiaOnyama Limba RENEWAL
Misaki RoysterCanadaAsiya Javayant PROPOSAL
Aruna FigeroaArgentinaXuxue Feng NEGOTIATION
Faith GillianArgentinaBernardo Dominic RENEWAL
Maria MarrierBrazilElwin Sharvill NEW
Aika InouyeSpainOnyama Limba PROPOSAL
David DarakjyFranceElwin Sharvill QUALIFIED
Ashley DoeSpainAnna Fali NEGOTIATION
Isabel BowleyCanadaStephen Shaw RENEWAL
Wickens NestleJapanAmy Elsner QUALIFIED
Morrow RutaJapanStephen Shaw RENEWAL
Arvin AlbaresFranceAmy Elsner NEGOTIATION
Isabel BowleyUnited KingdomAmy Elsner QUALIFIED
Aruna FigeroaItalyElwin Sharvill UNQUALIFIED
Juan WieserBrazilIoni Bowcher RENEWAL
Salvatore StockhamUnited KingdomBernardo Dominic NEW
Aruna FigeroaSpainOnyama Limba PROPOSAL
Adams MorascaItalyOnyama Limba NEW
Faith GillianFranceStephen Shaw NEW
Johnson SergiArgentinaOnyama Limba PROPOSAL
Chavez BriddickFranceOnyama Limba QUALIFIED
Clifford RimAustraliaStephen Shaw UNQUALIFIED
Kadeem FlosiArgentinaIvan Magalhaes QUALIFIED
Darci PoquetteArgentinaBernardo Dominic UNQUALIFIED
Smith GlickAustraliaIvan Magalhaes UNQUALIFIED
Mujtaba NickaArgentinaIoni Bowcher NEGOTIATION
Murillo MaletSpainXuxue Feng QUALIFIED
David DarakjyAustraliaElwin Sharvill UNQUALIFIED
Octavia MaletBrazilAnna Fali NEGOTIATION
Costa DilliardSpainBernardo Dominic NEGOTIATION
Wickens NestleArgentinaElwin Sharvill RENEWAL
Murillo MaletCanadaIvan Magalhaes NEW
Antonio CaudyArgentinaAmy Elsner NEW
Munro FerenczJapanIvan Magalhaes QUALIFIED
Francesco ShinkoBrazilOnyama Limba UNQUALIFIED
Wickens NestleAustraliaXuxue Feng NEW
Octavia MaletUnited KingdomAsiya Javayant QUALIFIED
Jones VocelkaUnited KingdomElwin Sharvill UNQUALIFIED
Nicolas IturbideCanadaAsiya Javayant NEGOTIATION
Salvatore StockhamAustraliaAmy Elsner UNQUALIFIED

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