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
Morrow RutaCanadaIvan Magalhaes NEGOTIATION
Jefferson SchemmerArgentinaXuxue Feng RENEWAL
Maisha RulapaughIndiaXuxue Feng NEW
Misaki RoysterArgentinaAsiya Javayant PROPOSAL
Arvin AlbaresSpainIoni Bowcher QUALIFIED
Aika InouyeAustraliaBernardo Dominic PROPOSAL
Isabel BowleyRussiaStephen Shaw PROPOSAL
Izzy GarufiArgentinaStephen Shaw PROPOSAL
Faith GillianCanadaIoni Bowcher RENEWAL
Claire TollnerIndiaElwin Sharvill PROPOSAL
Darci PoquetteArgentinaAsiya Javayant NEW
Francesco ShinkoItalyIvan Magalhaes RENEWAL
Francesco ShinkoJapanAnna Fali NEGOTIATION
Salvatore StockhamGermanyAsiya Javayant RENEWAL
Chavez BriddickJapanXuxue Feng NEGOTIATION
Antonio CaudyArgentinaBernardo Dominic QUALIFIED
Jennifer AmigonIndiaAnna Fali UNQUALIFIED
Maria MarrierAustraliaAnna Fali PROPOSAL
Claire TollnerJapanStephen Shaw NEW
Claire TollnerIndiaIvan Magalhaes UNQUALIFIED
Jeanfrancois VenereCanadaXuxue Feng NEW
Clifford RimItalyElwin Sharvill NEGOTIATION
Greenwood BologniaBrazilIvan Magalhaes NEGOTIATION
Maria MarrierAustraliaAnna Fali UNQUALIFIED
Jennifer AmigonRussiaElwin Sharvill PROPOSAL
Clifford RimItalyElwin Sharvill UNQUALIFIED
Faith GillianRussiaAsiya Javayant NEGOTIATION
Misaki RoysterRussiaOnyama Limba PROPOSAL
Greenwood BologniaItalyElwin Sharvill QUALIFIED
Kaitlin OstroskyArgentinaAsiya Javayant QUALIFIED
Stacey MacleadJapanXuxue Feng NEGOTIATION
Aika InouyeArgentinaIvan Magalhaes PROPOSAL
Mayumi KolmetzAustraliaElwin Sharvill NEGOTIATION
Sinclair WaycottItalyStephen Shaw NEGOTIATION
Cody SaylorsItalyXuxue Feng NEGOTIATION
Stacey MacleadAustraliaAmy Elsner QUALIFIED
Morrow RutaItalyXuxue Feng PROPOSAL
Smith GlickIndiaBernardo Dominic QUALIFIED
Francesco ShinkoAustraliaBernardo Dominic RENEWAL
Kadeem FlosiSpainXuxue Feng NEW
Wickens NestleGermanyStephen Shaw RENEWAL
Aruna FigeroaUnited KingdomElwin Sharvill RENEWAL
Clifford RimArgentinaAnna Fali RENEWAL
Rodrigues CampainGermanyIvan Magalhaes NEW
Salvatore StockhamSpainXuxue Feng PROPOSAL
Johnson SergiGermanyIvan Magalhaes UNQUALIFIED
Jefferson SchemmerIndiaStephen Shaw RENEWAL
David DarakjySpainOnyama Limba QUALIFIED
Julie StensethRussiaAnna Fali RENEWAL
Smith GlickCanadaIoni Bowcher UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Arvin AlbaresSpainAnna Fali UNQUALIFIED
Claire TollnerFranceIoni Bowcher UNQUALIFIED
Ivar PaprockiCanadaAnna Fali NEGOTIATION
Leja CaldareraIndiaIvan Magalhaes PROPOSAL
Salvatore StockhamJapanXuxue Feng QUALIFIED
Cody SaylorsCanadaIvan Magalhaes QUALIFIED
Emily WhobreyJapanIvan Magalhaes NEW
Claire TollnerUnited KingdomXuxue Feng QUALIFIED
Alejandro PerinFranceStephen Shaw NEGOTIATION
Cody SaylorsRussiaIvan Magalhaes NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio CaudyFrance2026-06-02Buckley Miller Wright UNQUALIFIED70Amy Elsner
1001Aruna FigeroaSpain2026-06-19Rangoni Of Florence PROPOSAL25Xuxue Feng
1002Morrow RutaAustralia2026-05-30Chanay, Jeffrey A Esq NEW23Bernardo Dominic
1003Sinclair WaycottRussia2026-05-23Benton, John B Jr QUALIFIED22Elwin Sharvill
1004Misaki RoysterAustralia2026-06-01Feiner Bros NEGOTIATION14Onyama Limba
1005Adams MorascaItaly2026-06-15Rousseaux, Michael Esq PROPOSAL32Amy Elsner
1006Emily WhobreyRussia2026-06-14Feltz Printing Service QUALIFIED17Elwin Sharvill
1007Misaki RoysterIndia2026-06-01Truhlar And Truhlar Attys RENEWAL19Ioni Bowcher
1008Smith GlickArgentina2026-05-25Commercial Press NEGOTIATION94Ioni Bowcher
1009Emily WhobreyGermany2026-06-14Commercial Press NEGOTIATION14Anna Fali
1010Darci PoquetteAustralia2026-05-27Rousseaux, Michael Esq PROPOSAL45Stephen Shaw
1011Faith GillianItaly2026-05-24Dorl, James J Esq RENEWAL93Onyama Limba
1012Claire TollnerSpain2026-05-30Buckley Miller Wright PROPOSAL18Onyama Limba
1013Nicolas IturbideFrance2026-06-12Rangoni Of Florence PROPOSAL18Xuxue Feng
1014Murillo MaletGermany2026-06-07Chapman, Ross E Esq PROPOSAL42Asiya Javayant
1015Isabel BowleyBrazil2026-06-09Chemel, James L Cpa QUALIFIED72Amy Elsner
1016Chavez BriddickUnited Kingdom2026-05-27Morlong Associates RENEWAL50Stephen Shaw
1017Alejandro PerinRussia2026-06-09Commercial Press PROPOSAL11Ivan Magalhaes
1018Johnson SergiJapan2026-05-25King, Christopher A Esq RENEWAL86Amy Elsner
1019Chavez BriddickArgentina2026-06-10Morlong Associates NEW23Ivan Magalhaes
1020Isabel BowleyCanada2026-06-18Chapman, Ross E Esq UNQUALIFIED86Onyama Limba
1021Francesco ShinkoAustralia2026-06-11Dorl, James J Esq PROPOSAL65Asiya Javayant
1022Izzy GarufiRussia2026-06-17King, Christopher A Esq UNQUALIFIED41Anna Fali
1023Misaki RoysterAustralia2026-05-30Dorl, James J Esq UNQUALIFIED1Asiya Javayant
1024Jennifer AmigonSpain2026-06-20Chanay, Jeffrey A Esq UNQUALIFIED59Ioni Bowcher
1025Jones VocelkaUnited Kingdom2026-06-12King, Christopher A Esq QUALIFIED1Ioni Bowcher
1026Aditya KuskoSpain2026-06-04Dorl, James J Esq RENEWAL72Elwin Sharvill
1027Antonio CaudyCanada2026-06-17Chapman, Ross E Esq QUALIFIED47Xuxue Feng
1028Faith GillianFrance2026-05-28Feltz Printing Service NEW14Anna Fali
1029Octavia MaletIndia2026-06-10Rousseaux, Michael Esq NEGOTIATION9Amy Elsner
1030Munro FerenczRussia2026-06-16Rousseaux, Michael Esq QUALIFIED8Ioni Bowcher
1031Wickens NestleSpain2026-06-10Rangoni Of Florence QUALIFIED46Bernardo Dominic
1032Greenwood BologniaIndia2026-06-19Chemel, James L Cpa QUALIFIED31Xuxue Feng
1033Ricardo GauchoUnited Kingdom2026-05-24Commercial Press RENEWAL73Amy Elsner
1034Adams MorascaBrazil2026-05-25Chapman, Ross E Esq PROPOSAL84Amy Elsner
1035Murillo MaletSpain2026-05-31Truhlar And Truhlar Attys NEGOTIATION36Bernardo Dominic
1036Aruna FigeroaGermany2026-05-28Chapman, Ross E Esq UNQUALIFIED84Elwin Sharvill
1037Darci PoquetteIndia2026-06-20Truhlar And Truhlar Attys NEGOTIATION25Stephen Shaw
1038Ashley DoeItaly2026-05-23King, Christopher A Esq NEW61Ioni Bowcher
1039Murillo MaletJapan2026-06-15Printing Dimensions NEGOTIATION70Amy Elsner
1040Clifford RimSpain2026-05-31Chanay, Jeffrey A Esq NEGOTIATION24Anna Fali
1041Kadeem FlosiSpain2026-06-20Dorl, James J Esq RENEWAL41Ioni Bowcher
1042Mayumi KolmetzJapan2026-05-29Truhlar And Truhlar Attys PROPOSAL94Anna Fali
1043Jeanfrancois VenereCanada2026-05-29Benton, John B Jr QUALIFIED89Xuxue Feng
1044Aruna FigeroaSpain2026-05-31Truhlar And Truhlar Attys PROPOSAL48Asiya Javayant
1045Kaitlin OstroskyIndia2026-05-30Chemel, James L Cpa QUALIFIED27Amy Elsner
1046Cody SaylorsIndia2026-06-15Benton, John B Jr QUALIFIED65Elwin Sharvill
1047Aika InouyeSpain2026-06-03Buckley Miller Wright NEW1Bernardo Dominic
1048Jeanfrancois VenereFrance2026-06-12Benton, John B Jr NEGOTIATION42Stephen Shaw
1049Misaki RoysterBrazil2026-05-23Morlong Associates PROPOSAL35Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Darci PoquetteJapanIoni Bowcher PROPOSAL
Jones VocelkaIndiaBernardo Dominic RENEWAL
Isabel BowleyItalyAsiya Javayant NEGOTIATION
Ivar PaprockiCanadaIoni Bowcher NEGOTIATION
Sinclair WaycottItalyStephen Shaw QUALIFIED
Aruna FigeroaUnited KingdomIvan Magalhaes NEGOTIATION
Morrow RutaAustraliaAnna Fali PROPOSAL
Misaki RoysterFranceStephen Shaw PROPOSAL
Misaki RoysterArgentinaAnna Fali NEW
Murillo MaletFranceOnyama Limba NEW
Munro FerenczCanadaStephen Shaw PROPOSAL
Adams MorascaCanadaElwin Sharvill RENEWAL
Darci PoquetteJapanXuxue Feng NEW
Rodrigues CampainCanadaXuxue Feng UNQUALIFIED
Morrow RutaAustraliaAnna Fali PROPOSAL
Chavez BriddickRussiaXuxue Feng RENEWAL
Ricardo GauchoCanadaAsiya Javayant PROPOSAL
Adams MorascaArgentinaElwin Sharvill QUALIFIED
Jefferson SchemmerRussiaBernardo Dominic RENEWAL
Chavez BriddickJapanIvan Magalhaes RENEWAL
Silvio SlusarskiUnited KingdomStephen Shaw UNQUALIFIED
Faith GillianRussiaXuxue Feng QUALIFIED
Maria MarrierUnited KingdomAsiya Javayant NEGOTIATION
Morrow RutaUnited KingdomAsiya Javayant QUALIFIED
Claire TollnerAustraliaElwin Sharvill NEW
Johnson SergiUnited KingdomAnna Fali PROPOSAL
Ivar PaprockiRussiaStephen Shaw UNQUALIFIED
Greenwood BologniaJapanIvan Magalhaes NEGOTIATION
Adams MorascaJapanAnna Fali NEGOTIATION
Octavia MaletIndiaBernardo Dominic PROPOSAL
Mujtaba NickaIndiaStephen Shaw NEW
Cody SaylorsItalyAsiya Javayant NEGOTIATION
James ButtBrazilIoni Bowcher QUALIFIED
Sinclair WaycottItalyXuxue Feng NEW
Darci PoquetteJapanAnna Fali QUALIFIED
Kaitlin OstroskyGermanyAsiya Javayant PROPOSAL
Clifford RimCanadaXuxue Feng QUALIFIED
Salvatore StockhamItalyAsiya Javayant QUALIFIED
Adams MorascaSpainIvan Magalhaes NEW
Morrow RutaSpainAnna Fali PROPOSAL
Sinclair WaycottAustraliaAmy Elsner NEGOTIATION
James ButtItalyIvan Magalhaes PROPOSAL
Aruna FigeroaArgentinaAmy Elsner PROPOSAL
Cody SaylorsRussiaAsiya Javayant NEW
James ButtAustraliaIoni Bowcher PROPOSAL
Emily WhobreyUnited KingdomOnyama Limba NEGOTIATION
Leon OldroydGermanyAnna Fali RENEWAL
Faith GillianSpainXuxue Feng RENEWAL
Aruna FigeroaAustraliaOnyama Limba QUALIFIED
Leja CaldareraIndiaIvan Magalhaes NEGOTIATION
Frozen Columns
Name
Jefferson Schemmer
Juan Wieser
Salvatore Stockham
Kadeem Flosi
Leja Caldarera
Jones Vocelka
Isabel Bowley
Johnson Sergi
Nicolas Iturbide
Isabel Bowley
Octavia Malet
Smith Glick
Aditya Kusko
Jefferson Schemmer
Johnson Sergi
Ricardo Gaucho
Stacey Maclead
Julie Stenseth
Aika Inouye
Jones Vocelka
Octavia Malet
Kadeem Flosi
Mujtaba Nicka
Jones Vocelka
Julie Stenseth
Mayumi Kolmetz
Smith Glick
Juan Wieser
Arvin Albares
Tony Foller
James Butt
Jefferson Schemmer
Ricardo Gaucho
Ricardo Gaucho
Octavia Malet
Silvio Slusarski
Misaki Royster
Kadeem Flosi
Chavez Briddick
Maisha Rulapaugh
Murillo Malet
Greenwood Bolognia
Leon Oldroyd
Tony Foller
Tony Foller
Juan Wieser
Mujtaba Nicka
Costa Dilliard
Costa Dilliard
Silvio Slusarski
IdCountryDate
1000United Kingdom2026-05-27
1001Spain2026-06-20
1002France2026-06-13
1003Spain2026-06-17
1004United Kingdom2026-06-14
1005Australia2026-06-12
1006United Kingdom2026-05-26
1007Italy2026-06-17
1008Australia2026-06-11
1009Spain2026-06-10
1010Canada2026-06-06
1011Canada2026-06-08
1012France2026-06-10
1013Russia2026-05-30
1014France2026-06-05
1015Japan2026-06-05
1016Japan2026-05-29
1017Italy2026-06-08
1018Russia2026-06-20
1019Russia2026-05-25
1020Canada2026-05-31
1021Spain2026-06-13
1022Germany2026-06-20
1023Argentina2026-06-06
1024Spain2026-05-27
1025France2026-06-10
1026India2026-06-03
1027Canada2026-06-20
1028Argentina2026-06-15
1029Spain2026-05-23
1030Italy2026-05-28
1031Spain2026-06-17
1032India2026-06-18
1033Argentina2026-06-14
1034Russia2026-06-11
1035France2026-05-27
1036Germany2026-06-08
1037India2026-05-23
1038Russia2026-06-19
1039Brazil2026-05-29
1040Spain2026-06-01
1041Australia2026-05-29
1042Spain2026-06-07
1043Japan2026-06-05
1044United Kingdom2026-06-15
1045Germany2026-06-09
1046Germany2026-06-10
1047Spain2026-05-23
1048Spain2026-06-08
1049United Kingdom2026-06-09

On-Demand Data

NameIdCountryDate
Costa Dilliard1000Spain2026-06-18
Maisha Rulapaugh1001Australia2026-06-08
Leja Caldarera1002France2026-05-26
Emily Whobrey1003Australia2026-06-08
Julie Stenseth1004India2026-05-30
Munro Ferencz1005Russia2026-06-01
James Butt1006Australia2026-05-24
Tony Foller1007France2026-06-04
Arvin Albares1008Argentina2026-06-01
Mujtaba Nicka1009India2026-06-17
Chavez Briddick1010Australia2026-05-29
Stacey Maclead1011Brazil2026-06-05
Jeanfrancois Venere1012Spain2026-06-02
Arvin Albares1013Japan2026-06-18
Faith Gillian1014India2026-06-10
Maria Marrier1015Italy2026-06-21
Antonio Caudy1016Argentina2026-06-10
Maria Marrier1017Russia2026-05-24
Johnson Sergi1018Italy2026-06-06
Jefferson Schemmer1019United Kingdom2026-06-06
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair WaycottFranceXuxue Feng UNQUALIFIED
Leon OldroydSpainIoni Bowcher PROPOSAL
Stacey MacleadAustraliaAsiya Javayant NEGOTIATION
Jefferson SchemmerIndiaIoni Bowcher UNQUALIFIED
Ivar PaprockiFranceOnyama Limba UNQUALIFIED
Smith GlickJapanOnyama Limba RENEWAL
James ButtRussiaOnyama Limba RENEWAL
Sinclair WaycottIndiaStephen Shaw PROPOSAL
Salvatore StockhamItalyStephen Shaw NEW
Wickens NestleCanadaOnyama Limba NEGOTIATION
Izzy GarufiJapanAmy Elsner NEGOTIATION
Arvin AlbaresAustraliaBernardo Dominic PROPOSAL
Arvin AlbaresSpainIoni Bowcher QUALIFIED
Claire TollnerGermanyAmy Elsner PROPOSAL
Silvio SlusarskiUnited KingdomIvan Magalhaes QUALIFIED
James ButtFranceIvan Magalhaes NEW
Chavez BriddickJapanIoni Bowcher NEGOTIATION
James ButtGermanyStephen Shaw NEW
Isabel BowleyIndiaIvan Magalhaes UNQUALIFIED
Murillo MaletArgentinaXuxue Feng RENEWAL
Octavia MaletFranceIoni Bowcher RENEWAL
Faith GillianCanadaAsiya Javayant NEGOTIATION
Johnson SergiAustraliaOnyama Limba PROPOSAL
Leon OldroydUnited KingdomBernardo Dominic RENEWAL
Isabel BowleyItalyOnyama Limba UNQUALIFIED
Morrow RutaBrazilOnyama Limba RENEWAL
Wickens NestleCanadaBernardo Dominic UNQUALIFIED
Tony FollerArgentinaOnyama Limba NEW
Sinclair WaycottArgentinaIvan Magalhaes QUALIFIED
Deepesh ChuiUnited KingdomStephen Shaw RENEWAL
Wickens NestleIndiaOnyama Limba NEW
Claire TollnerBrazilXuxue Feng NEW
Rodrigues CampainJapanIoni Bowcher NEW
Ricardo GauchoGermanyIoni Bowcher PROPOSAL
Jones VocelkaGermanyAnna Fali PROPOSAL
Izzy GarufiSpainAmy Elsner NEW
Nicolas IturbideRussiaAsiya Javayant NEGOTIATION
Deepesh ChuiFranceBernardo Dominic NEGOTIATION
Jennifer AmigonIndiaIvan Magalhaes PROPOSAL
David DarakjyCanadaAnna Fali 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>