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
Ivar PaprockiGermanyElwin Sharvill NEGOTIATION
Leon OldroydAustraliaStephen Shaw QUALIFIED
Octavia MaletUnited KingdomOnyama Limba UNQUALIFIED
Jones VocelkaGermanyAsiya Javayant RENEWAL
Aditya KuskoGermanyElwin Sharvill UNQUALIFIED
Leon OldroydUnited KingdomIvan Magalhaes QUALIFIED
Jeanfrancois VenereIndiaIoni Bowcher NEW
Salvatore StockhamSpainAmy Elsner RENEWAL
Rodrigues CampainItalyXuxue Feng RENEWAL
Juan WieserJapanBernardo Dominic NEGOTIATION
Faith GillianBrazilAsiya Javayant UNQUALIFIED
Francesco ShinkoJapanXuxue Feng UNQUALIFIED
Silvio SlusarskiArgentinaOnyama Limba PROPOSAL
Smith GlickSpainAsiya Javayant QUALIFIED
Ivar PaprockiCanadaElwin Sharvill NEW
Murillo MaletUnited KingdomStephen Shaw UNQUALIFIED
Alejandro PerinGermanyStephen Shaw NEW
Chavez BriddickItalyElwin Sharvill NEW
Kaitlin OstroskyJapanStephen Shaw PROPOSAL
Rodrigues CampainJapanIvan Magalhaes QUALIFIED
David DarakjyIndiaAnna Fali QUALIFIED
Jeanfrancois VenereIndiaIoni Bowcher RENEWAL
Costa DilliardUnited KingdomXuxue Feng NEGOTIATION
Cody SaylorsArgentinaIvan Magalhaes NEW
Deepesh ChuiItalyAnna Fali QUALIFIED
Costa DilliardUnited KingdomAnna Fali NEW
Mujtaba NickaItalyBernardo Dominic QUALIFIED
Mayumi KolmetzAustraliaAsiya Javayant QUALIFIED
Stacey MacleadFranceStephen Shaw UNQUALIFIED
Arvin AlbaresJapanElwin Sharvill RENEWAL
Murillo MaletJapanBernardo Dominic UNQUALIFIED
Izzy GarufiArgentinaAmy Elsner PROPOSAL
Morrow RutaBrazilXuxue Feng QUALIFIED
Isabel BowleyIndiaAsiya Javayant UNQUALIFIED
Costa DilliardArgentinaIoni Bowcher PROPOSAL
Arvin AlbaresSpainAsiya Javayant RENEWAL
Adams MorascaSpainAmy Elsner NEGOTIATION
Silvio SlusarskiItalyElwin Sharvill RENEWAL
Chavez BriddickIndiaAmy Elsner UNQUALIFIED
Antonio CaudyItalyStephen Shaw NEW
Juan WieserJapanOnyama Limba UNQUALIFIED
Isabel BowleyAustraliaOnyama Limba NEGOTIATION
Jones VocelkaUnited KingdomAnna Fali RENEWAL
Silvio SlusarskiArgentinaStephen Shaw NEW
Maisha RulapaughBrazilIoni Bowcher QUALIFIED
Francesco ShinkoUnited KingdomXuxue Feng UNQUALIFIED
Octavia MaletAustraliaAmy Elsner NEGOTIATION
Smith GlickAustraliaAsiya Javayant NEW
Octavia MaletRussiaElwin Sharvill QUALIFIED
Antonio CaudyBrazilBernardo Dominic RENEWAL
Horizontal
NameCountryRepresentativeStatus
Wickens NestleUnited KingdomXuxue Feng UNQUALIFIED
Chavez BriddickUnited KingdomOnyama Limba RENEWAL
Juan WieserAustraliaStephen Shaw NEW
Juan WieserRussiaAnna Fali PROPOSAL
Adams MorascaSpainAsiya Javayant PROPOSAL
Salvatore StockhamArgentinaElwin Sharvill PROPOSAL
Jeanfrancois VenereCanadaElwin Sharvill PROPOSAL
Maisha RulapaughUnited KingdomXuxue Feng QUALIFIED
Tony FollerItalyIoni Bowcher PROPOSAL
Chavez BriddickArgentinaAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Ashley DoeSpain2026-04-17Rousseaux, Michael Esq UNQUALIFIED48Xuxue Feng
1001Morrow RutaIndia2026-03-28Commercial Press UNQUALIFIED31Ivan Magalhaes
1002Faith GillianItaly2026-04-03Chapman, Ross E Esq PROPOSAL77Elwin Sharvill
1003Adams MorascaAustralia2026-04-15Benton, John B Jr NEW10Stephen Shaw
1004Smith GlickIndia2026-04-11Printing Dimensions RENEWAL3Elwin Sharvill
1005Claire TollnerBrazil2026-04-06Commercial Press PROPOSAL38Stephen Shaw
1006Ivar PaprockiJapan2026-04-21Rousseaux, Michael Esq RENEWAL45Stephen Shaw
1007Aruna FigeroaSpain2026-04-15Rousseaux, Michael Esq NEW71Asiya Javayant
1008Stacey MacleadCanada2026-03-24Feiner Bros QUALIFIED3Elwin Sharvill
1009Wickens NestleUnited Kingdom2026-03-26Feltz Printing Service NEW60Asiya Javayant
1010Misaki RoysterCanada2026-04-09Chapman, Ross E Esq NEGOTIATION88Stephen Shaw
1011James ButtArgentina2026-04-19Feiner Bros UNQUALIFIED46Elwin Sharvill
1012Claire TollnerJapan2026-04-02Buckley Miller Wright NEGOTIATION26Elwin Sharvill
1013Mujtaba NickaItaly2026-03-24Rangoni Of Florence NEW72Ivan Magalhaes
1014Darci PoquetteFrance2026-03-28Chemel, James L Cpa RENEWAL35Asiya Javayant
1015Rodrigues CampainUnited Kingdom2026-04-02Commercial Press NEW8Ioni Bowcher
1016Leja CaldareraBrazil2026-04-17Rangoni Of Florence NEGOTIATION81Stephen Shaw
1017Juan WieserItaly2026-04-12Feiner Bros NEW91Asiya Javayant
1018Maria MarrierIndia2026-04-06Chanay, Jeffrey A Esq RENEWAL85Anna Fali
1019Stacey MacleadAustralia2026-04-13Buckley Miller Wright PROPOSAL34Bernardo Dominic
1020Kaitlin OstroskyArgentina2026-04-02Benton, John B Jr QUALIFIED24Ivan Magalhaes
1021Mujtaba NickaArgentina2026-04-19Truhlar And Truhlar Attys PROPOSAL22Ivan Magalhaes
1022Darci PoquetteArgentina2026-04-20King, Christopher A Esq RENEWAL90Bernardo Dominic
1023Leja CaldareraCanada2026-03-27Truhlar And Truhlar Attys QUALIFIED68Asiya Javayant
1024Darci PoquetteBrazil2026-03-27Benton, John B Jr RENEWAL41Bernardo Dominic
1025Greenwood BologniaBrazil2026-03-28Benton, John B Jr UNQUALIFIED4Onyama Limba
1026Francesco ShinkoRussia2026-04-02Feiner Bros UNQUALIFIED86Ivan Magalhaes
1027Jones VocelkaFrance2026-03-28Feiner Bros NEW75Elwin Sharvill
1028James ButtJapan2026-04-19Feiner Bros UNQUALIFIED98Ioni Bowcher
1029Deepesh ChuiArgentina2026-04-03Morlong Associates NEGOTIATION21Asiya Javayant
1030Juan WieserGermany2026-04-05Benton, John B Jr UNQUALIFIED22Xuxue Feng
1031Smith GlickRussia2026-04-14Chapman, Ross E Esq NEW77Asiya Javayant
1032Cody SaylorsUnited Kingdom2026-04-06Chanay, Jeffrey A Esq NEGOTIATION16Amy Elsner
1033Julie StensethItaly2026-03-25Buckley Miller Wright UNQUALIFIED5Asiya Javayant
1034Wickens NestleAustralia2026-03-28Chemel, James L Cpa QUALIFIED70Stephen Shaw
1035Clifford RimArgentina2026-04-02Printing Dimensions NEW89Amy Elsner
1036Juan WieserGermany2026-04-08Feiner Bros NEGOTIATION36Ioni Bowcher
1037Misaki RoysterIndia2026-03-26Benton, John B Jr RENEWAL0Bernardo Dominic
1038Tony FollerGermany2026-03-28Buckley Miller Wright NEGOTIATION68Stephen Shaw
1039Mayumi KolmetzUnited Kingdom2026-04-18Morlong Associates RENEWAL38Asiya Javayant
1040Misaki RoysterArgentina2026-04-14Printing Dimensions RENEWAL8Ioni Bowcher
1041Morrow RutaUnited Kingdom2026-04-15Truhlar And Truhlar Attys QUALIFIED33Asiya Javayant
1042Adams MorascaGermany2026-04-01Feltz Printing Service PROPOSAL97Amy Elsner
1043Jennifer AmigonGermany2026-04-10Buckley Miller Wright UNQUALIFIED31Xuxue Feng
1044Munro FerenczItaly2026-04-05Chanay, Jeffrey A Esq PROPOSAL90Onyama Limba
1045Darci PoquetteArgentina2026-04-04Truhlar And Truhlar Attys PROPOSAL21Bernardo Dominic
1046Ivar PaprockiJapan2026-03-25Truhlar And Truhlar Attys QUALIFIED15Amy Elsner
1047Leja CaldareraBrazil2026-03-29Truhlar And Truhlar Attys PROPOSAL17Ivan Magalhaes
1048Morrow RutaJapan2026-03-26Chanay, Jeffrey A Esq NEGOTIATION52Stephen Shaw
1049Isabel BowleyIndia2026-04-08Chanay, Jeffrey A Esq PROPOSAL32Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Octavia MaletGermanyElwin Sharvill NEW
Aditya KuskoSpainAnna Fali QUALIFIED
Kadeem FlosiRussiaAnna Fali NEW
Arvin AlbaresCanadaAmy Elsner PROPOSAL
Mayumi KolmetzItalyIoni Bowcher PROPOSAL
David DarakjyJapanIoni Bowcher UNQUALIFIED
Adams MorascaAustraliaIoni Bowcher UNQUALIFIED
Greenwood BologniaBrazilAsiya Javayant RENEWAL
Francesco ShinkoCanadaAsiya Javayant RENEWAL
Claire TollnerAustraliaAsiya Javayant RENEWAL
Antonio CaudySpainAnna Fali QUALIFIED
Mujtaba NickaAustraliaIvan Magalhaes PROPOSAL
Misaki RoysterJapanAsiya Javayant NEW
Leja CaldareraItalyStephen Shaw QUALIFIED
Adams MorascaSpainStephen Shaw UNQUALIFIED
Rodrigues CampainSpainBernardo Dominic RENEWAL
Johnson SergiAustraliaStephen Shaw QUALIFIED
Munro FerenczBrazilIoni Bowcher UNQUALIFIED
Cody SaylorsJapanBernardo Dominic UNQUALIFIED
Tony FollerItalyIvan Magalhaes UNQUALIFIED
Julie StensethCanadaStephen Shaw RENEWAL
Leon OldroydAustraliaStephen Shaw UNQUALIFIED
Munro FerenczGermanyXuxue Feng PROPOSAL
Mayumi KolmetzRussiaElwin Sharvill QUALIFIED
Jefferson SchemmerArgentinaXuxue Feng NEGOTIATION
Deepesh ChuiJapanXuxue Feng UNQUALIFIED
Antonio CaudyAustraliaAnna Fali QUALIFIED
Ricardo GauchoItalyElwin Sharvill QUALIFIED
Silvio SlusarskiCanadaElwin Sharvill NEW
Kaitlin OstroskyAustraliaIoni Bowcher UNQUALIFIED
Aditya KuskoBrazilIvan Magalhaes RENEWAL
Izzy GarufiArgentinaAsiya Javayant UNQUALIFIED
Sinclair WaycottAustraliaAmy Elsner NEGOTIATION
Izzy GarufiGermanyIvan Magalhaes RENEWAL
Nicolas IturbideArgentinaIoni Bowcher RENEWAL
Ivar PaprockiFranceStephen Shaw NEGOTIATION
Mujtaba NickaJapanBernardo Dominic NEW
Nicolas IturbideSpainAnna Fali NEGOTIATION
Silvio SlusarskiUnited KingdomIoni Bowcher QUALIFIED
Nicolas IturbideSpainXuxue Feng PROPOSAL
Deepesh ChuiGermanyIvan Magalhaes PROPOSAL
Costa DilliardItalyStephen Shaw QUALIFIED
Emily WhobreyBrazilStephen Shaw NEGOTIATION
James ButtAustraliaStephen Shaw PROPOSAL
Leja CaldareraFranceBernardo Dominic PROPOSAL
Aditya KuskoAustraliaAsiya Javayant UNQUALIFIED
Francesco ShinkoAustraliaOnyama Limba QUALIFIED
David DarakjyGermanyAmy Elsner QUALIFIED
Jeanfrancois VenereSpainXuxue Feng NEGOTIATION
Adams MorascaRussiaIoni Bowcher NEGOTIATION
Frozen Columns
Name
Murillo Malet
Kaitlin Ostrosky
Jeanfrancois Venere
Johnson Sergi
Isabel Bowley
Juan Wieser
Mayumi Kolmetz
Maisha Rulapaugh
Kadeem Flosi
Faith Gillian
Maria Marrier
Jones Vocelka
Ivar Paprocki
Rodrigues Campain
Nicolas Iturbide
Murillo Malet
Mujtaba Nicka
Aditya Kusko
Smith Glick
Jennifer Amigon
Leon Oldroyd
Maria Marrier
Alejandro Perin
Maisha Rulapaugh
Morrow Ruta
Darci Poquette
David Darakjy
Maria Marrier
Rodrigues Campain
Munro Ferencz
Ashley Doe
Nicolas Iturbide
Julie Stenseth
Wickens Nestle
Stacey Maclead
Cody Saylors
Jennifer Amigon
Jennifer Amigon
Octavia Malet
Jefferson Schemmer
Chavez Briddick
Leon Oldroyd
Chavez Briddick
Mayumi Kolmetz
Wickens Nestle
Mayumi Kolmetz
Ashley Doe
Smith Glick
Adams Morasca
Isabel Bowley
IdCountryDate
1000Italy2026-04-14
1001United Kingdom2026-04-21
1002Japan2026-04-20
1003Brazil2026-03-26
1004Russia2026-04-07
1005France2026-04-21
1006Italy2026-04-12
1007Japan2026-04-13
1008India2026-04-11
1009Canada2026-04-15
1010Australia2026-04-21
1011Japan2026-04-02
1012Japan2026-03-25
1013France2026-04-04
1014Russia2026-04-10
1015Italy2026-04-10
1016Italy2026-04-05
1017Argentina2026-04-17
1018Brazil2026-03-29
1019India2026-03-23
1020France2026-03-23
1021Italy2026-04-14
1022Germany2026-04-20
1023United Kingdom2026-04-14
1024Argentina2026-04-17
1025France2026-04-19
1026Canada2026-03-28
1027Canada2026-03-24
1028Germany2026-03-31
1029Japan2026-04-05
1030Australia2026-04-10
1031Japan2026-03-25
1032Russia2026-04-08
1033France2026-04-20
1034Canada2026-04-20
1035Spain2026-04-02
1036Japan2026-04-14
1037France2026-04-01
1038Germany2026-04-15
1039France2026-04-09
1040Japan2026-03-31
1041Italy2026-04-16
1042France2026-04-14
1043Russia2026-04-13
1044India2026-04-18
1045Japan2026-04-17
1046India2026-04-07
1047Spain2026-04-03
1048Argentina2026-04-12
1049Canada2026-04-21

On-Demand Data

NameIdCountryDate
Antonio Caudy1000Canada2026-04-14
Jefferson Schemmer1001Spain2026-04-15
Clifford Rim1002Brazil2026-04-11
Smith Glick1003Spain2026-04-10
Murillo Malet1004Spain2026-04-01
Darci Poquette1005France2026-04-10
Octavia Malet1006Australia2026-04-13
Jennifer Amigon1007Brazil2026-03-31
Salvatore Stockham1008Japan2026-04-09
Stacey Maclead1009France2026-03-25
Arvin Albares1010India2026-04-05
Chavez Briddick1011Australia2026-04-11
Ivar Paprocki1012Russia2026-04-06
Jennifer Amigon1013Italy2026-04-02
Munro Ferencz1014Italy2026-03-26
Jones Vocelka1015Argentina2026-04-15
Ivar Paprocki1016Brazil2026-04-14
Antonio Caudy1017Brazil2026-04-02
Chavez Briddick1018Argentina2026-04-03
Morrow Ruta1019Canada2026-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Jennifer AmigonRussiaOnyama Limba NEGOTIATION
Aditya KuskoFranceIoni Bowcher UNQUALIFIED
James ButtSpainElwin Sharvill QUALIFIED
Darci PoquetteBrazilIvan Magalhaes NEGOTIATION
Stacey MacleadBrazilAsiya Javayant PROPOSAL
Chavez BriddickGermanyAnna Fali NEGOTIATION
Ashley DoeItalyOnyama Limba NEW
Isabel BowleyFranceStephen Shaw PROPOSAL
Alejandro PerinSpainAsiya Javayant NEW
Jeanfrancois VenereCanadaStephen Shaw RENEWAL
Nicolas IturbideIndiaXuxue Feng UNQUALIFIED
Sinclair WaycottAustraliaAsiya Javayant UNQUALIFIED
Sinclair WaycottFranceIvan Magalhaes NEW
Arvin AlbaresFranceOnyama Limba NEW
Isabel BowleyIndiaIoni Bowcher PROPOSAL
Cody SaylorsRussiaOnyama Limba NEW
Aika InouyeArgentinaXuxue Feng UNQUALIFIED
Mujtaba NickaItalyElwin Sharvill NEGOTIATION
Maria MarrierItalyIvan Magalhaes NEW
Salvatore StockhamCanadaIvan Magalhaes NEW
Maria MarrierArgentinaAsiya Javayant RENEWAL
Jefferson SchemmerBrazilIvan Magalhaes RENEWAL
Kadeem FlosiBrazilAmy Elsner PROPOSAL
Johnson SergiIndiaIvan Magalhaes NEW
Arvin AlbaresBrazilOnyama Limba NEW
Kadeem FlosiAustraliaAmy Elsner RENEWAL
Nicolas IturbideArgentinaAmy Elsner QUALIFIED
Izzy GarufiGermanyAmy Elsner RENEWAL
Silvio SlusarskiBrazilAmy Elsner NEW
Aditya KuskoSpainAsiya Javayant RENEWAL
Aruna FigeroaItalyAsiya Javayant NEGOTIATION
Tony FollerJapanBernardo Dominic UNQUALIFIED
Murillo MaletGermanyBernardo Dominic UNQUALIFIED
Maisha RulapaughCanadaAmy Elsner QUALIFIED
Ricardo GauchoCanadaElwin Sharvill RENEWAL
Izzy GarufiCanadaAnna Fali QUALIFIED
Maria MarrierIndiaOnyama Limba PROPOSAL
Ricardo GauchoCanadaBernardo Dominic UNQUALIFIED
Juan WieserBrazilElwin Sharvill NEW
Alejandro PerinBrazilStephen Shaw 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>