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
Murillo MaletIndiaStephen Shaw RENEWAL
Mayumi KolmetzItalyAnna Fali RENEWAL
Faith GillianRussiaStephen Shaw UNQUALIFIED
Maria MarrierAustraliaElwin Sharvill QUALIFIED
Leja CaldareraBrazilAsiya Javayant RENEWAL
Silvio SlusarskiIndiaAnna Fali RENEWAL
Tony FollerAustraliaAmy Elsner NEW
Aika InouyeItalyBernardo Dominic NEGOTIATION
Kaitlin OstroskyJapanElwin Sharvill NEW
Kaitlin OstroskyArgentinaAnna Fali UNQUALIFIED
Nicolas IturbideGermanyXuxue Feng RENEWAL
Misaki RoysterJapanStephen Shaw QUALIFIED
Juan WieserGermanyIvan Magalhaes QUALIFIED
Jeanfrancois VenereFranceBernardo Dominic NEGOTIATION
Ashley DoeJapanXuxue Feng QUALIFIED
Francesco ShinkoJapanAnna Fali NEGOTIATION
Aika InouyeIndiaAnna Fali PROPOSAL
Clifford RimJapanIvan Magalhaes RENEWAL
Smith GlickSpainElwin Sharvill PROPOSAL
Stacey MacleadArgentinaXuxue Feng NEGOTIATION
Adams MorascaFranceAmy Elsner NEGOTIATION
Greenwood BologniaFranceXuxue Feng NEGOTIATION
Maisha RulapaughArgentinaStephen Shaw NEW
Mujtaba NickaRussiaStephen Shaw QUALIFIED
Leja CaldareraAustraliaElwin Sharvill UNQUALIFIED
Arvin AlbaresFranceAmy Elsner PROPOSAL
James ButtRussiaXuxue Feng QUALIFIED
Leon OldroydIndiaAmy Elsner NEGOTIATION
Jones VocelkaIndiaIvan Magalhaes PROPOSAL
Kaitlin OstroskyJapanOnyama Limba PROPOSAL
Sinclair WaycottBrazilElwin Sharvill RENEWAL
Greenwood BologniaBrazilElwin Sharvill RENEWAL
Isabel BowleyRussiaIoni Bowcher NEW
Aika InouyeItalyAsiya Javayant RENEWAL
Johnson SergiArgentinaAsiya Javayant PROPOSAL
Arvin AlbaresBrazilAmy Elsner QUALIFIED
Jennifer AmigonAustraliaAmy Elsner RENEWAL
Kaitlin OstroskySpainStephen Shaw UNQUALIFIED
Aika InouyeUnited KingdomElwin Sharvill QUALIFIED
Ashley DoeBrazilOnyama Limba QUALIFIED
Greenwood BologniaSpainAmy Elsner QUALIFIED
Stacey MacleadItalyStephen Shaw PROPOSAL
James ButtAustraliaBernardo Dominic UNQUALIFIED
James ButtFranceOnyama Limba NEW
Izzy GarufiJapanAnna Fali UNQUALIFIED
Julie StensethCanadaXuxue Feng QUALIFIED
Mujtaba NickaSpainXuxue Feng PROPOSAL
Jefferson SchemmerSpainStephen Shaw UNQUALIFIED
Clifford RimItalyAnna Fali NEGOTIATION
Costa DilliardArgentinaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
Ashley DoeItalyIvan Magalhaes NEW
Aditya KuskoCanadaStephen Shaw RENEWAL
Aruna FigeroaSpainElwin Sharvill PROPOSAL
Kaitlin OstroskyItalyBernardo Dominic PROPOSAL
Juan WieserUnited KingdomAmy Elsner PROPOSAL
Ashley DoeUnited KingdomBernardo Dominic QUALIFIED
Francesco ShinkoSpainBernardo Dominic NEGOTIATION
Arvin AlbaresCanadaElwin Sharvill RENEWAL
Ashley DoeJapanIoni Bowcher QUALIFIED
Murillo MaletJapanIvan Magalhaes RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Morrow RutaJapan2026-04-27Truhlar And Truhlar Attys RENEWAL81Bernardo Dominic
1001Jefferson SchemmerSpain2026-04-22Commercial Press NEGOTIATION72Amy Elsner
1002James ButtArgentina2026-04-30Rangoni Of Florence NEGOTIATION69Elwin Sharvill
1003Octavia MaletCanada2026-04-23Truhlar And Truhlar Attys PROPOSAL82Ioni Bowcher
1004Salvatore StockhamCanada2026-05-06Commercial Press QUALIFIED28Ivan Magalhaes
1005Salvatore StockhamRussia2026-04-21Chemel, James L Cpa RENEWAL44Amy Elsner
1006Jefferson SchemmerFrance2026-04-23Feiner Bros QUALIFIED5Ioni Bowcher
1007Isabel BowleyGermany2026-04-15Printing Dimensions RENEWAL8Anna Fali
1008Chavez BriddickArgentina2026-04-29Rousseaux, Michael Esq UNQUALIFIED49Amy Elsner
1009Chavez BriddickUnited Kingdom2026-04-27Dorl, James J Esq QUALIFIED95Ivan Magalhaes
1010Jennifer AmigonAustralia2026-04-21Buckley Miller Wright QUALIFIED63Onyama Limba
1011Jennifer AmigonJapan2026-05-02Rangoni Of Florence QUALIFIED36Ioni Bowcher
1012Claire TollnerIndia2026-04-17Chanay, Jeffrey A Esq RENEWAL37Amy Elsner
1013Julie StensethUnited Kingdom2026-04-18Feiner Bros NEW63Bernardo Dominic
1014Rodrigues CampainItaly2026-05-10Chanay, Jeffrey A Esq PROPOSAL52Asiya Javayant
1015Sinclair WaycottItaly2026-04-28Dorl, James J Esq NEW56Ioni Bowcher
1016Ashley DoeIndia2026-05-09Chanay, Jeffrey A Esq NEGOTIATION0Onyama Limba
1017Ashley DoeAustralia2026-04-22Truhlar And Truhlar Attys RENEWAL97Elwin Sharvill
1018Chavez BriddickUnited Kingdom2026-04-12Rangoni Of Florence UNQUALIFIED58Ivan Magalhaes
1019Cody SaylorsJapan2026-04-15Feltz Printing Service QUALIFIED0Onyama Limba
1020Johnson SergiSpain2026-04-30Feltz Printing Service UNQUALIFIED8Asiya Javayant
1021Tony FollerAustralia2026-04-16Chemel, James L Cpa UNQUALIFIED46Onyama Limba
1022Jeanfrancois VenereFrance2026-05-11Commercial Press QUALIFIED42Elwin Sharvill
1023James ButtCanada2026-04-23Chapman, Ross E Esq UNQUALIFIED23Ivan Magalhaes
1024Johnson SergiBrazil2026-05-09Dorl, James J Esq PROPOSAL96Xuxue Feng
1025Leja CaldareraAustralia2026-04-25Printing Dimensions NEGOTIATION9Ivan Magalhaes
1026Jeanfrancois VenereJapan2026-04-25Dorl, James J Esq RENEWAL70Elwin Sharvill
1027Francesco ShinkoAustralia2026-04-29King, Christopher A Esq UNQUALIFIED96Amy Elsner
1028Arvin AlbaresFrance2026-05-06Benton, John B Jr NEW26Xuxue Feng
1029Mayumi KolmetzUnited Kingdom2026-04-23Rangoni Of Florence QUALIFIED65Ivan Magalhaes
1030David DarakjyFrance2026-05-05Commercial Press NEW80Stephen Shaw
1031Kaitlin OstroskyCanada2026-04-28Benton, John B Jr NEW91Elwin Sharvill
1032Maisha RulapaughIndia2026-04-16Benton, John B Jr UNQUALIFIED24Asiya Javayant
1033Wickens NestleGermany2026-04-14Truhlar And Truhlar Attys UNQUALIFIED13Anna Fali
1034Sinclair WaycottItaly2026-04-27Feiner Bros NEW6Ivan Magalhaes
1035Mujtaba NickaSpain2026-04-15Feiner Bros RENEWAL74Stephen Shaw
1036Emily WhobreyCanada2026-04-26Buckley Miller Wright PROPOSAL9Onyama Limba
1037Nicolas IturbideBrazil2026-05-11Feiner Bros NEW43Ioni Bowcher
1038Ashley DoeArgentina2026-04-18Chapman, Ross E Esq NEW65Asiya Javayant
1039Jennifer AmigonJapan2026-04-27Dorl, James J Esq PROPOSAL87Anna Fali
1040Tony FollerBrazil2026-05-03Rousseaux, Michael Esq QUALIFIED60Asiya Javayant
1041Smith GlickGermany2026-04-22Feltz Printing Service QUALIFIED42Elwin Sharvill
1042Jefferson SchemmerCanada2026-04-23Feltz Printing Service PROPOSAL70Elwin Sharvill
1043Jefferson SchemmerFrance2026-04-26Dorl, James J Esq QUALIFIED70Elwin Sharvill
1044Maria MarrierUnited Kingdom2026-04-30Chapman, Ross E Esq UNQUALIFIED94Bernardo Dominic
1045Octavia MaletGermany2026-05-05King, Christopher A Esq QUALIFIED11Onyama Limba
1046Deepesh ChuiArgentina2026-04-26Buckley Miller Wright RENEWAL96Xuxue Feng
1047Nicolas IturbideGermany2026-05-05Rangoni Of Florence PROPOSAL40Xuxue Feng
1048Darci PoquetteUnited Kingdom2026-04-24Buckley Miller Wright UNQUALIFIED91Anna Fali
1049Aika InouyeJapan2026-04-23Truhlar And Truhlar Attys UNQUALIFIED34Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Octavia MaletArgentinaOnyama Limba UNQUALIFIED
Ivar PaprockiIndiaIvan Magalhaes NEGOTIATION
James ButtFranceAnna Fali QUALIFIED
Jefferson SchemmerItalyAnna Fali NEW
Alejandro PerinSpainOnyama Limba QUALIFIED
Leja CaldareraJapanOnyama Limba PROPOSAL
Morrow RutaRussiaIvan Magalhaes QUALIFIED
Salvatore StockhamJapanStephen Shaw NEGOTIATION
Jeanfrancois VenereRussiaElwin Sharvill NEW
Arvin AlbaresArgentinaAnna Fali PROPOSAL
Silvio SlusarskiRussiaIoni Bowcher QUALIFIED
Alejandro PerinUnited KingdomStephen Shaw UNQUALIFIED
Arvin AlbaresUnited KingdomElwin Sharvill NEW
Faith GillianFranceBernardo Dominic QUALIFIED
Misaki RoysterCanadaElwin Sharvill NEGOTIATION
Arvin AlbaresAustraliaAmy Elsner QUALIFIED
Kadeem FlosiGermanyOnyama Limba QUALIFIED
Clifford RimItalyElwin Sharvill QUALIFIED
Jeanfrancois VenereGermanyAmy Elsner UNQUALIFIED
Juan WieserUnited KingdomIoni Bowcher UNQUALIFIED
Aruna FigeroaSpainXuxue Feng UNQUALIFIED
Cody SaylorsCanadaIoni Bowcher UNQUALIFIED
Chavez BriddickCanadaStephen Shaw PROPOSAL
Morrow RutaFranceAmy Elsner NEGOTIATION
Johnson SergiArgentinaBernardo Dominic NEGOTIATION
Aika InouyeGermanyStephen Shaw PROPOSAL
Aditya KuskoCanadaElwin Sharvill NEGOTIATION
Darci PoquetteUnited KingdomXuxue Feng UNQUALIFIED
Claire TollnerBrazilElwin Sharvill QUALIFIED
Ivar PaprockiRussiaOnyama Limba QUALIFIED
Mayumi KolmetzCanadaAmy Elsner NEW
Stacey MacleadBrazilStephen Shaw UNQUALIFIED
Wickens NestleGermanyStephen Shaw UNQUALIFIED
Izzy GarufiFranceOnyama Limba RENEWAL
Aditya KuskoSpainStephen Shaw PROPOSAL
Jefferson SchemmerIndiaStephen Shaw RENEWAL
Stacey MacleadFranceElwin Sharvill RENEWAL
Maria MarrierUnited KingdomOnyama Limba UNQUALIFIED
Aika InouyeGermanyIoni Bowcher RENEWAL
Arvin AlbaresIndiaBernardo Dominic NEGOTIATION
Antonio CaudyUnited KingdomIvan Magalhaes PROPOSAL
Greenwood BologniaRussiaOnyama Limba NEW
Morrow RutaAustraliaIvan Magalhaes UNQUALIFIED
Maisha RulapaughIndiaBernardo Dominic RENEWAL
Tony FollerAustraliaXuxue Feng RENEWAL
Rodrigues CampainAustraliaIoni Bowcher NEGOTIATION
Alejandro PerinAustraliaAmy Elsner NEW
Jennifer AmigonAustraliaStephen Shaw QUALIFIED
Jeanfrancois VenereGermanyIvan Magalhaes NEGOTIATION
Mayumi KolmetzCanadaAmy Elsner QUALIFIED
Frozen Columns
Name
Morrow Ruta
Silvio Slusarski
Jeanfrancois Venere
Octavia Malet
Jeanfrancois Venere
Isabel Bowley
Ricardo Gaucho
Wickens Nestle
Arvin Albares
Smith Glick
Silvio Slusarski
Salvatore Stockham
Emily Whobrey
Arvin Albares
Cody Saylors
Deepesh Chui
Julie Stenseth
James Butt
Francesco Shinko
Silvio Slusarski
Jones Vocelka
Leja Caldarera
Cody Saylors
Isabel Bowley
David Darakjy
Izzy Garufi
Mayumi Kolmetz
Julie Stenseth
Mayumi Kolmetz
Arvin Albares
Aika Inouye
David Darakjy
Misaki Royster
Jones Vocelka
Ricardo Gaucho
Rodrigues Campain
Emily Whobrey
Claire Tollner
Emily Whobrey
Clifford Rim
Emily Whobrey
Isabel Bowley
Nicolas Iturbide
Francesco Shinko
Misaki Royster
James Butt
Smith Glick
Arvin Albares
Greenwood Bolognia
Jennifer Amigon
IdCountryDate
1000Brazil2026-04-29
1001Argentina2026-04-15
1002Spain2026-04-29
1003India2026-05-04
1004Japan2026-04-17
1005Australia2026-04-15
1006India2026-04-26
1007Canada2026-05-07
1008India2026-04-24
1009Argentina2026-04-28
1010Argentina2026-04-21
1011France2026-05-10
1012India2026-05-02
1013France2026-04-26
1014Germany2026-04-17
1015India2026-04-30
1016United Kingdom2026-05-11
1017France2026-04-29
1018Brazil2026-04-27
1019France2026-04-14
1020Italy2026-04-20
1021India2026-04-28
1022Spain2026-04-24
1023Japan2026-04-26
1024Canada2026-04-18
1025Germany2026-04-22
1026Germany2026-04-20
1027Japan2026-04-13
1028United Kingdom2026-04-19
1029Argentina2026-05-07
1030India2026-04-18
1031Spain2026-05-10
1032Russia2026-04-25
1033Argentina2026-05-03
1034Australia2026-04-25
1035France2026-05-01
1036Argentina2026-04-15
1037India2026-05-02
1038India2026-04-18
1039Canada2026-04-16
1040Brazil2026-04-30
1041Argentina2026-04-30
1042Brazil2026-04-18
1043Australia2026-04-13
1044Canada2026-05-10
1045Italy2026-04-18
1046Japan2026-05-11
1047Brazil2026-05-11
1048United Kingdom2026-04-21
1049Brazil2026-04-25

On-Demand Data

NameIdCountryDate
Faith Gillian1000Brazil2026-04-16
Juan Wieser1001Brazil2026-04-17
Darci Poquette1002France2026-04-19
Alejandro Perin1003Canada2026-05-11
Izzy Garufi1004Spain2026-05-08
Wickens Nestle1005Canada2026-04-16
Julie Stenseth1006Brazil2026-05-08
Maria Marrier1007Spain2026-04-19
Mayumi Kolmetz1008Spain2026-04-29
Jefferson Schemmer1009Spain2026-04-30
Aruna Figeroa1010France2026-04-16
Morrow Ruta1011India2026-04-29
Antonio Caudy1012India2026-04-14
Arvin Albares1013Germany2026-04-19
Isabel Bowley1014India2026-05-07
Tony Foller1015Russia2026-05-08
Jennifer Amigon1016Australia2026-04-12
Julie Stenseth1017France2026-04-28
Smith Glick1018Russia2026-05-05
Deepesh Chui1019Argentina2026-04-14
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore StockhamSpainIoni Bowcher NEW
Maisha RulapaughUnited KingdomIoni Bowcher NEW
Aruna FigeroaArgentinaAsiya Javayant NEGOTIATION
Ivar PaprockiItalyIvan Magalhaes QUALIFIED
Jefferson SchemmerJapanXuxue Feng RENEWAL
Salvatore StockhamUnited KingdomIoni Bowcher RENEWAL
Leja CaldareraItalyAnna Fali NEW
Rodrigues CampainJapanElwin Sharvill QUALIFIED
Clifford RimCanadaElwin Sharvill RENEWAL
Nicolas IturbideRussiaXuxue Feng PROPOSAL
Ashley DoeArgentinaAnna Fali PROPOSAL
Kadeem FlosiJapanXuxue Feng NEGOTIATION
Ricardo GauchoSpainAsiya Javayant RENEWAL
Francesco ShinkoCanadaAnna Fali PROPOSAL
Wickens NestleFranceBernardo Dominic RENEWAL
Jefferson SchemmerFranceElwin Sharvill QUALIFIED
Adams MorascaAustraliaAsiya Javayant NEGOTIATION
Rodrigues CampainRussiaBernardo Dominic PROPOSAL
Wickens NestleCanadaBernardo Dominic RENEWAL
Salvatore StockhamRussiaIoni Bowcher NEW
Jennifer AmigonBrazilOnyama Limba NEGOTIATION
Jeanfrancois VenereSpainIvan Magalhaes NEGOTIATION
Faith GillianGermanyStephen Shaw UNQUALIFIED
Francesco ShinkoCanadaAnna Fali PROPOSAL
Aruna FigeroaIndiaOnyama Limba PROPOSAL
Francesco ShinkoCanadaIoni Bowcher NEW
Smith GlickRussiaStephen Shaw RENEWAL
Cody SaylorsIndiaAsiya Javayant RENEWAL
Morrow RutaIndiaAsiya Javayant NEW
Morrow RutaJapanIoni Bowcher PROPOSAL
Wickens NestleSpainOnyama Limba QUALIFIED
Wickens NestleArgentinaAsiya Javayant RENEWAL
Darci PoquetteItalyIvan Magalhaes QUALIFIED
Cody SaylorsArgentinaIvan Magalhaes NEGOTIATION
Adams MorascaArgentinaIvan Magalhaes QUALIFIED
Leja CaldareraUnited KingdomIvan Magalhaes PROPOSAL
Misaki RoysterGermanyElwin Sharvill RENEWAL
Faith GillianFranceBernardo Dominic NEW
Francesco ShinkoCanadaIvan Magalhaes PROPOSAL
Maisha RulapaughCanadaXuxue Feng 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>