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
James ButtArgentinaElwin Sharvill NEGOTIATION
Kadeem FlosiIndiaIoni Bowcher UNQUALIFIED
Sinclair WaycottBrazilBernardo Dominic QUALIFIED
Stacey MacleadAustraliaXuxue Feng UNQUALIFIED
Greenwood BologniaArgentinaAnna Fali QUALIFIED
Sinclair WaycottFranceBernardo Dominic PROPOSAL
Mayumi KolmetzAustraliaXuxue Feng QUALIFIED
Francesco ShinkoRussiaIvan Magalhaes NEGOTIATION
Sinclair WaycottSpainAnna Fali PROPOSAL
Jennifer AmigonCanadaBernardo Dominic UNQUALIFIED
Stacey MacleadRussiaAnna Fali PROPOSAL
Nicolas IturbideSpainOnyama Limba RENEWAL
Jeanfrancois VenereBrazilIvan Magalhaes NEW
Darci PoquetteAustraliaStephen Shaw RENEWAL
Greenwood BologniaCanadaOnyama Limba NEGOTIATION
Kadeem FlosiCanadaStephen Shaw RENEWAL
Stacey MacleadItalyOnyama Limba RENEWAL
Murillo MaletRussiaAnna Fali PROPOSAL
Wickens NestleItalyAnna Fali QUALIFIED
Costa DilliardRussiaBernardo Dominic UNQUALIFIED
David DarakjySpainStephen Shaw NEW
Munro FerenczAustraliaIvan Magalhaes RENEWAL
Aika InouyeFranceAmy Elsner QUALIFIED
Misaki RoysterJapanXuxue Feng PROPOSAL
Faith GillianCanadaAnna Fali QUALIFIED
Arvin AlbaresUnited KingdomElwin Sharvill PROPOSAL
Emily WhobreyFranceAmy Elsner QUALIFIED
Deepesh ChuiUnited KingdomElwin Sharvill NEGOTIATION
Kadeem FlosiFranceAnna Fali RENEWAL
Cody SaylorsAustraliaBernardo Dominic UNQUALIFIED
Leja CaldareraGermanyIvan Magalhaes UNQUALIFIED
Greenwood BologniaArgentinaAnna Fali UNQUALIFIED
Leon OldroydRussiaElwin Sharvill NEGOTIATION
Kaitlin OstroskyJapanBernardo Dominic PROPOSAL
Arvin AlbaresCanadaAmy Elsner NEGOTIATION
Adams MorascaArgentinaAsiya Javayant NEGOTIATION
Murillo MaletArgentinaOnyama Limba RENEWAL
Morrow RutaCanadaStephen Shaw NEGOTIATION
Kadeem FlosiUnited KingdomAmy Elsner UNQUALIFIED
Jefferson SchemmerGermanyElwin Sharvill RENEWAL
Leja CaldareraRussiaIoni Bowcher NEGOTIATION
Costa DilliardIndiaXuxue Feng UNQUALIFIED
Deepesh ChuiFranceAmy Elsner QUALIFIED
Aditya KuskoSpainElwin Sharvill NEW
Greenwood BologniaFranceBernardo Dominic UNQUALIFIED
Darci PoquetteUnited KingdomAsiya Javayant QUALIFIED
Deepesh ChuiUnited KingdomOnyama Limba NEGOTIATION
Greenwood BologniaGermanyBernardo Dominic NEW
David DarakjySpainAmy Elsner PROPOSAL
Maisha RulapaughAustraliaAmy Elsner NEW
Horizontal
NameCountryRepresentativeStatus
Munro FerenczGermanyAmy Elsner QUALIFIED
Alejandro PerinJapanAnna Fali PROPOSAL
Juan WieserJapanIoni Bowcher NEW
Ricardo GauchoAustraliaAnna Fali UNQUALIFIED
Mujtaba NickaSpainAmy Elsner RENEWAL
Kaitlin OstroskyFranceAnna Fali NEGOTIATION
Jones VocelkaIndiaAnna Fali QUALIFIED
Morrow RutaRussiaAmy Elsner UNQUALIFIED
Izzy GarufiJapanStephen Shaw RENEWAL
Nicolas IturbideUnited KingdomXuxue Feng UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Nicolas IturbideGermany2026-05-17Buckley Miller Wright QUALIFIED6Elwin Sharvill
1001Mayumi KolmetzJapan2026-05-31Feiner Bros NEW36Anna Fali
1002Nicolas IturbideSpain2026-05-27Feltz Printing Service UNQUALIFIED6Onyama Limba
1003Smith GlickFrance2026-05-21Dorl, James J Esq QUALIFIED22Xuxue Feng
1004Rodrigues CampainSpain2026-05-19Feltz Printing Service QUALIFIED94Ioni Bowcher
1005Morrow RutaIndia2026-06-03Dorl, James J Esq RENEWAL50Ivan Magalhaes
1006Ivar PaprockiArgentina2026-05-11Chapman, Ross E Esq PROPOSAL36Ioni Bowcher
1007Johnson SergiRussia2026-05-27Truhlar And Truhlar Attys NEW69Ioni Bowcher
1008Greenwood BologniaUnited Kingdom2026-05-27King, Christopher A Esq QUALIFIED90Asiya Javayant
1009Costa DilliardSpain2026-05-11Rousseaux, Michael Esq PROPOSAL25Ioni Bowcher
1010Aruna FigeroaSpain2026-06-02Rangoni Of Florence UNQUALIFIED82Stephen Shaw
1011Aruna FigeroaJapan2026-05-19Truhlar And Truhlar Attys NEW61Asiya Javayant
1012Ashley DoeFrance2026-05-15Printing Dimensions RENEWAL15Stephen Shaw
1013Aditya KuskoGermany2026-05-31Printing Dimensions QUALIFIED5Bernardo Dominic
1014Adams MorascaItaly2026-05-11Rousseaux, Michael Esq NEW76Ivan Magalhaes
1015Johnson SergiGermany2026-05-09Feltz Printing Service NEGOTIATION90Bernardo Dominic
1016Mujtaba NickaSpain2026-05-13Rangoni Of Florence QUALIFIED80Bernardo Dominic
1017Antonio CaudyFrance2026-05-21Chemel, James L Cpa UNQUALIFIED23Onyama Limba
1018Rodrigues CampainArgentina2026-06-03Dorl, James J Esq NEGOTIATION47Bernardo Dominic
1019David DarakjyBrazil2026-05-11Buckley Miller Wright QUALIFIED73Bernardo Dominic
1020Aika InouyeIndia2026-05-17Chapman, Ross E Esq NEGOTIATION74Ioni Bowcher
1021Claire TollnerFrance2026-05-12Chanay, Jeffrey A Esq UNQUALIFIED37Ivan Magalhaes
1022Faith GillianGermany2026-05-22Morlong Associates NEGOTIATION33Onyama Limba
1023Costa DilliardJapan2026-05-18Chanay, Jeffrey A Esq QUALIFIED42Ivan Magalhaes
1024Jones VocelkaCanada2026-05-10Printing Dimensions UNQUALIFIED89Anna Fali
1025Aika InouyeIndia2026-05-15Printing Dimensions UNQUALIFIED82Ioni Bowcher
1026Maria MarrierUnited Kingdom2026-06-01Rousseaux, Michael Esq NEGOTIATION78Elwin Sharvill
1027Francesco ShinkoAustralia2026-05-17Rangoni Of Florence QUALIFIED72Bernardo Dominic
1028Alejandro PerinAustralia2026-05-19King, Christopher A Esq NEGOTIATION11Ioni Bowcher
1029Silvio SlusarskiSpain2026-05-27Benton, John B Jr QUALIFIED74Ioni Bowcher
1030Jennifer AmigonJapan2026-05-28Feiner Bros QUALIFIED44Onyama Limba
1031Greenwood BologniaBrazil2026-05-28King, Christopher A Esq RENEWAL15Amy Elsner
1032Munro FerenczCanada2026-05-26Rousseaux, Michael Esq PROPOSAL56Elwin Sharvill
1033Jefferson SchemmerRussia2026-05-23Morlong Associates RENEWAL29Anna Fali
1034Rodrigues CampainArgentina2026-05-10Commercial Press PROPOSAL19Asiya Javayant
1035Aditya KuskoIndia2026-05-10Dorl, James J Esq RENEWAL85Ivan Magalhaes
1036Adams MorascaAustralia2026-05-15Benton, John B Jr QUALIFIED86Elwin Sharvill
1037Silvio SlusarskiSpain2026-05-24Chanay, Jeffrey A Esq UNQUALIFIED47Asiya Javayant
1038Clifford RimSpain2026-05-26Feiner Bros PROPOSAL50Onyama Limba
1039Emily WhobreyCanada2026-05-17Feltz Printing Service PROPOSAL69Amy Elsner
1040Jones VocelkaArgentina2026-05-24Benton, John B Jr QUALIFIED86Stephen Shaw
1041James ButtSpain2026-05-15Feltz Printing Service QUALIFIED77Stephen Shaw
1042Octavia MaletIndia2026-05-13Buckley Miller Wright UNQUALIFIED44Anna Fali
1043Clifford RimJapan2026-05-18Commercial Press UNQUALIFIED61Onyama Limba
1044Wickens NestleArgentina2026-05-22Printing Dimensions NEGOTIATION35Elwin Sharvill
1045Isabel BowleyBrazil2026-05-19Feltz Printing Service QUALIFIED29Bernardo Dominic
1046David DarakjyUnited Kingdom2026-05-16Buckley Miller Wright UNQUALIFIED68Bernardo Dominic
1047Nicolas IturbideItaly2026-05-14Feiner Bros NEW32Elwin Sharvill
1048Aika InouyeSpain2026-05-26Buckley Miller Wright QUALIFIED94Amy Elsner
1049Costa DilliardItaly2026-05-17Truhlar And Truhlar Attys NEW27Xuxue Feng
Frozen Rows
NameCountryRepresentativeStatus
Juan WieserAustraliaBernardo Dominic NEGOTIATION
Mayumi KolmetzFranceElwin Sharvill PROPOSAL
Kaitlin OstroskyItalyIvan Magalhaes NEGOTIATION
Arvin AlbaresGermanyAnna Fali NEW
Jennifer AmigonJapanAsiya Javayant QUALIFIED
Mayumi KolmetzGermanyOnyama Limba NEW
Munro FerenczRussiaIoni Bowcher UNQUALIFIED
Jeanfrancois VenereRussiaXuxue Feng UNQUALIFIED
Maria MarrierBrazilAsiya Javayant QUALIFIED
Silvio SlusarskiBrazilStephen Shaw NEW
Mayumi KolmetzJapanStephen Shaw QUALIFIED
Leon OldroydAustraliaIoni Bowcher PROPOSAL
Salvatore StockhamBrazilIoni Bowcher NEGOTIATION
Aika InouyeRussiaElwin Sharvill QUALIFIED
Octavia MaletCanadaBernardo Dominic UNQUALIFIED
Cody SaylorsGermanyOnyama Limba NEGOTIATION
Arvin AlbaresCanadaBernardo Dominic RENEWAL
Ricardo GauchoCanadaXuxue Feng NEW
Francesco ShinkoRussiaIoni Bowcher UNQUALIFIED
Jeanfrancois VenereFranceOnyama Limba RENEWAL
Kaitlin OstroskyRussiaOnyama Limba UNQUALIFIED
Costa DilliardJapanBernardo Dominic PROPOSAL
Wickens NestleUnited KingdomIvan Magalhaes PROPOSAL
Rodrigues CampainCanadaOnyama Limba PROPOSAL
Mayumi KolmetzUnited KingdomElwin Sharvill RENEWAL
Chavez BriddickItalyOnyama Limba QUALIFIED
Octavia MaletIndiaIvan Magalhaes RENEWAL
Maisha RulapaughUnited KingdomXuxue Feng QUALIFIED
Mujtaba NickaAustraliaOnyama Limba UNQUALIFIED
Juan WieserArgentinaAmy Elsner NEW
Mujtaba NickaAustraliaAnna Fali PROPOSAL
Maisha RulapaughJapanAnna Fali PROPOSAL
Aika InouyeUnited KingdomStephen Shaw NEW
Kaitlin OstroskyGermanyIvan Magalhaes PROPOSAL
Cody SaylorsAustraliaAsiya Javayant UNQUALIFIED
Aditya KuskoGermanyXuxue Feng NEW
Claire TollnerIndiaStephen Shaw NEW
Rodrigues CampainArgentinaIoni Bowcher PROPOSAL
Aruna FigeroaBrazilElwin Sharvill QUALIFIED
Jeanfrancois VenereAustraliaAmy Elsner NEGOTIATION
Faith GillianCanadaAsiya Javayant QUALIFIED
Juan WieserIndiaXuxue Feng PROPOSAL
Aditya KuskoRussiaOnyama Limba NEGOTIATION
Izzy GarufiUnited KingdomStephen Shaw QUALIFIED
Kaitlin OstroskySpainElwin Sharvill UNQUALIFIED
Claire TollnerSpainOnyama Limba RENEWAL
Silvio SlusarskiFranceXuxue Feng NEW
Leon OldroydRussiaAsiya Javayant PROPOSAL
Cody SaylorsGermanyBernardo Dominic UNQUALIFIED
Mujtaba NickaJapanOnyama Limba QUALIFIED
Frozen Columns
Name
Costa Dilliard
Deepesh Chui
David Darakjy
Murillo Malet
Aika Inouye
Aika Inouye
Claire Tollner
Leon Oldroyd
Isabel Bowley
Claire Tollner
Morrow Ruta
Johnson Sergi
Ashley Doe
Emily Whobrey
Leon Oldroyd
Claire Tollner
Adams Morasca
Smith Glick
Chavez Briddick
Aruna Figeroa
Isabel Bowley
Tony Foller
Misaki Royster
Izzy Garufi
David Darakjy
Faith Gillian
Morrow Ruta
Emily Whobrey
Cody Saylors
Aditya Kusko
Greenwood Bolognia
Rodrigues Campain
Clifford Rim
Costa Dilliard
Emily Whobrey
James Butt
Morrow Ruta
Misaki Royster
Wickens Nestle
Ashley Doe
Jefferson Schemmer
Izzy Garufi
Sinclair Waycott
Octavia Malet
Arvin Albares
Arvin Albares
Kadeem Flosi
Juan Wieser
Octavia Malet
David Darakjy
IdCountryDate
1000France2026-06-05
1001Argentina2026-05-21
1002Japan2026-06-03
1003Argentina2026-05-25
1004India2026-05-11
1005Brazil2026-05-14
1006Australia2026-05-18
1007Russia2026-05-26
1008Italy2026-05-29
1009Germany2026-05-30
1010Spain2026-05-13
1011Argentina2026-05-26
1012Japan2026-05-23
1013Germany2026-06-02
1014Australia2026-05-31
1015France2026-05-15
1016Russia2026-05-26
1017France2026-06-03
1018Canada2026-05-25
1019Brazil2026-06-04
1020France2026-06-04
1021Russia2026-05-27
1022France2026-06-06
1023France2026-05-17
1024Spain2026-05-31
1025Canada2026-05-18
1026Russia2026-05-25
1027India2026-05-23
1028Argentina2026-05-22
1029Brazil2026-05-21
1030Canada2026-05-14
1031Argentina2026-05-25
1032Japan2026-06-05
1033India2026-06-03
1034Canada2026-06-04
1035Japan2026-05-27
1036Russia2026-05-27
1037Japan2026-05-30
1038India2026-05-29
1039Spain2026-05-26
1040United Kingdom2026-05-30
1041United Kingdom2026-05-15
1042Brazil2026-05-13
1043United Kingdom2026-05-18
1044Japan2026-05-17
1045Spain2026-06-04
1046Germany2026-06-04
1047France2026-05-28
1048France2026-05-29
1049India2026-05-16

On-Demand Data

NameIdCountryDate
Greenwood Bolognia1000United Kingdom2026-05-31
Arvin Albares1001Canada2026-05-13
Murillo Malet1002Germany2026-05-16
Maria Marrier1003Australia2026-05-10
Claire Tollner1004Spain2026-06-04
Silvio Slusarski1005Argentina2026-06-06
Isabel Bowley1006Italy2026-05-18
Morrow Ruta1007Germany2026-05-26
Adams Morasca1008Canada2026-05-22
Adams Morasca1009France2026-06-06
David Darakjy1010Canada2026-05-28
Ricardo Gaucho1011Italy2026-05-26
Jones Vocelka1012Australia2026-05-14
Jeanfrancois Venere1013Japan2026-06-03
Julie Stenseth1014Japan2026-05-11
Alejandro Perin1015Argentina2026-06-02
Juan Wieser1016Argentina2026-05-14
Darci Poquette1017France2026-06-06
James Butt1018Germany2026-05-20
Maria Marrier1019Australia2026-05-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Aika InouyeItalyAmy Elsner RENEWAL
Morrow RutaBrazilIvan Magalhaes NEW
Emily WhobreyJapanAsiya Javayant QUALIFIED
Antonio CaudyRussiaStephen Shaw NEW
Chavez BriddickFranceBernardo Dominic NEW
Wickens NestleGermanyXuxue Feng QUALIFIED
Wickens NestleAustraliaIvan Magalhaes NEW
Leon OldroydCanadaAnna Fali NEGOTIATION
Sinclair WaycottJapanAsiya Javayant NEGOTIATION
Deepesh ChuiArgentinaXuxue Feng UNQUALIFIED
James ButtSpainAmy Elsner NEW
Rodrigues CampainGermanyBernardo Dominic PROPOSAL
Adams MorascaIndiaIvan Magalhaes QUALIFIED
Costa DilliardCanadaElwin Sharvill NEW
Murillo MaletIndiaAnna Fali QUALIFIED
Stacey MacleadBrazilIvan Magalhaes NEW
Aika InouyeItalyStephen Shaw NEGOTIATION
Aditya KuskoArgentinaAsiya Javayant NEGOTIATION
Aika InouyeArgentinaAmy Elsner NEW
Sinclair WaycottBrazilAnna Fali QUALIFIED
Kadeem FlosiCanadaStephen Shaw UNQUALIFIED
Aruna FigeroaCanadaElwin Sharvill PROPOSAL
Silvio SlusarskiSpainIoni Bowcher NEW
Wickens NestleSpainAmy Elsner NEW
Salvatore StockhamIndiaIoni Bowcher NEGOTIATION
Mayumi KolmetzAustraliaElwin Sharvill QUALIFIED
Tony FollerGermanyIoni Bowcher NEGOTIATION
Francesco ShinkoItalyBernardo Dominic QUALIFIED
Ivar PaprockiArgentinaOnyama Limba PROPOSAL
Maisha RulapaughBrazilIoni Bowcher NEW
Greenwood BologniaGermanyXuxue Feng UNQUALIFIED
Aditya KuskoGermanyElwin Sharvill NEGOTIATION
Aruna FigeroaItalyElwin Sharvill NEW
Claire TollnerJapanBernardo Dominic RENEWAL
Ivar PaprockiGermanyIoni Bowcher QUALIFIED
Darci PoquetteBrazilBernardo Dominic NEW
Aditya KuskoBrazilOnyama Limba RENEWAL
Cody SaylorsIndiaAnna Fali QUALIFIED
Alejandro PerinSpainIoni Bowcher PROPOSAL
Aditya KuskoBrazilStephen Shaw NEGOTIATION

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