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
Ricardo GauchoGermanyAnna Fali RENEWAL
Clifford RimItalyStephen Shaw NEGOTIATION
Greenwood BologniaJapanElwin Sharvill QUALIFIED
Leon OldroydJapanAmy Elsner PROPOSAL
Smith GlickFranceAnna Fali PROPOSAL
Morrow RutaFranceBernardo Dominic QUALIFIED
Jeanfrancois VenereBrazilOnyama Limba UNQUALIFIED
Chavez BriddickIndiaIoni Bowcher UNQUALIFIED
Nicolas IturbideJapanElwin Sharvill RENEWAL
Leja CaldareraUnited KingdomBernardo Dominic UNQUALIFIED
Alejandro PerinJapanIoni Bowcher NEGOTIATION
Munro FerenczAustraliaBernardo Dominic RENEWAL
Ivar PaprockiIndiaIvan Magalhaes QUALIFIED
Jones VocelkaIndiaAsiya Javayant RENEWAL
Francesco ShinkoUnited KingdomBernardo Dominic PROPOSAL
Sinclair WaycottItalyXuxue Feng PROPOSAL
Jones VocelkaAustraliaAnna Fali PROPOSAL
Leja CaldareraItalyAnna Fali RENEWAL
Julie StensethArgentinaBernardo Dominic UNQUALIFIED
Aika InouyeUnited KingdomIvan Magalhaes QUALIFIED
Rodrigues CampainIndiaAnna Fali QUALIFIED
Octavia MaletItalyBernardo Dominic PROPOSAL
Morrow RutaIndiaIoni Bowcher RENEWAL
Rodrigues CampainBrazilBernardo Dominic PROPOSAL
Leon OldroydCanadaOnyama Limba PROPOSAL
Kaitlin OstroskyJapanIoni Bowcher UNQUALIFIED
Cody SaylorsIndiaAnna Fali NEGOTIATION
Silvio SlusarskiAustraliaOnyama Limba PROPOSAL
Wickens NestleBrazilBernardo Dominic NEGOTIATION
Smith GlickCanadaXuxue Feng NEW
Francesco ShinkoItalyAsiya Javayant PROPOSAL
Ivar PaprockiJapanIvan Magalhaes NEGOTIATION
Murillo MaletSpainAmy Elsner UNQUALIFIED
Munro FerenczAustraliaElwin Sharvill RENEWAL
Kadeem FlosiAustraliaBernardo Dominic QUALIFIED
Rodrigues CampainIndiaIoni Bowcher UNQUALIFIED
Kadeem FlosiUnited KingdomIoni Bowcher NEGOTIATION
Mujtaba NickaAustraliaAnna Fali RENEWAL
Deepesh ChuiIndiaElwin Sharvill UNQUALIFIED
Maisha RulapaughJapanStephen Shaw PROPOSAL
Maria MarrierUnited KingdomAmy Elsner UNQUALIFIED
Misaki RoysterUnited KingdomAsiya Javayant PROPOSAL
Aditya KuskoJapanStephen Shaw NEW
Mayumi KolmetzBrazilStephen Shaw QUALIFIED
Smith GlickJapanStephen Shaw NEGOTIATION
Chavez BriddickAustraliaIoni Bowcher NEW
Maria MarrierFranceBernardo Dominic PROPOSAL
Aruna FigeroaUnited KingdomElwin Sharvill RENEWAL
Mayumi KolmetzFranceStephen Shaw RENEWAL
Emily WhobreyUnited KingdomOnyama Limba NEW
Horizontal
NameCountryRepresentativeStatus
Morrow RutaSpainStephen Shaw QUALIFIED
Jefferson SchemmerRussiaXuxue Feng UNQUALIFIED
Adams MorascaRussiaOnyama Limba UNQUALIFIED
Arvin AlbaresAustraliaBernardo Dominic RENEWAL
Stacey MacleadGermanyIoni Bowcher NEW
Aruna FigeroaAustraliaStephen Shaw UNQUALIFIED
Murillo MaletIndiaAmy Elsner QUALIFIED
Johnson SergiUnited KingdomXuxue Feng RENEWAL
Kaitlin OstroskyUnited KingdomElwin Sharvill NEW
Wickens NestleItalyAnna Fali RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Kaitlin OstroskyAustralia2026-04-16Truhlar And Truhlar Attys UNQUALIFIED63Anna Fali
1001Antonio CaudySpain2026-04-10Chanay, Jeffrey A Esq QUALIFIED90Ioni Bowcher
1002Kaitlin OstroskyIndia2026-03-31Printing Dimensions PROPOSAL3Xuxue Feng
1003Tony FollerSpain2026-04-29Rangoni Of Florence QUALIFIED29Onyama Limba
1004Morrow RutaAustralia2026-04-22Printing Dimensions UNQUALIFIED98Anna Fali
1005Adams MorascaCanada2026-04-05Truhlar And Truhlar Attys NEGOTIATION85Asiya Javayant
1006Murillo MaletItaly2026-04-07Feltz Printing Service PROPOSAL82Elwin Sharvill
1007Antonio CaudyGermany2026-04-24Rousseaux, Michael Esq PROPOSAL31Anna Fali
1008Johnson SergiCanada2026-04-03Rousseaux, Michael Esq NEGOTIATION97Ivan Magalhaes
1009Wickens NestleItaly2026-04-06Truhlar And Truhlar Attys PROPOSAL3Amy Elsner
1010Maria MarrierJapan2026-04-02Buckley Miller Wright PROPOSAL92Ioni Bowcher
1011Clifford RimCanada2026-04-11Feiner Bros PROPOSAL3Stephen Shaw
1012Ashley DoeItaly2026-04-23Feiner Bros RENEWAL4Xuxue Feng
1013Misaki RoysterAustralia2026-04-17Feltz Printing Service NEW61Asiya Javayant
1014Aditya KuskoArgentina2026-04-03Feiner Bros QUALIFIED93Ivan Magalhaes
1015Morrow RutaUnited Kingdom2026-04-28Printing Dimensions NEGOTIATION25Onyama Limba
1016Aika InouyeIndia2026-04-06Morlong Associates QUALIFIED99Asiya Javayant
1017Octavia MaletAustralia2026-04-29Chanay, Jeffrey A Esq QUALIFIED61Xuxue Feng
1018Greenwood BologniaAustralia2026-04-06Rousseaux, Michael Esq NEGOTIATION69Ioni Bowcher
1019Munro FerenczFrance2026-04-19Commercial Press PROPOSAL37Stephen Shaw
1020Antonio CaudySpain2026-03-31Chapman, Ross E Esq QUALIFIED90Xuxue Feng
1021Tony FollerBrazil2026-04-28Rangoni Of Florence PROPOSAL61Bernardo Dominic
1022Morrow RutaUnited Kingdom2026-04-14Rousseaux, Michael Esq NEW59Ivan Magalhaes
1023Rodrigues CampainSpain2026-04-19Buckley Miller Wright QUALIFIED62Asiya Javayant
1024Aika InouyeItaly2026-04-04Buckley Miller Wright NEGOTIATION75Asiya Javayant
1025Emily WhobreyCanada2026-04-11Rangoni Of Florence NEW85Asiya Javayant
1026Kaitlin OstroskyAustralia2026-04-21Truhlar And Truhlar Attys RENEWAL45Ioni Bowcher
1027David DarakjyBrazil2026-04-20Rangoni Of Florence UNQUALIFIED72Bernardo Dominic
1028Maria MarrierBrazil2026-04-12King, Christopher A Esq RENEWAL0Asiya Javayant
1029Smith GlickAustralia2026-04-22Rangoni Of Florence QUALIFIED23Amy Elsner
1030Claire TollnerAustralia2026-04-23Printing Dimensions QUALIFIED15Ioni Bowcher
1031Stacey MacleadGermany2026-04-25Rangoni Of Florence QUALIFIED12Asiya Javayant
1032Salvatore StockhamItaly2026-04-27Commercial Press RENEWAL14Bernardo Dominic
1033Salvatore StockhamSpain2026-04-04Rangoni Of Florence UNQUALIFIED0Elwin Sharvill
1034Cody SaylorsBrazil2026-04-22Dorl, James J Esq RENEWAL43Bernardo Dominic
1035Ashley DoeSpain2026-04-10King, Christopher A Esq NEW48Stephen Shaw
1036Murillo MaletSpain2026-04-23Chapman, Ross E Esq PROPOSAL28Ivan Magalhaes
1037Mayumi KolmetzItaly2026-04-04Chanay, Jeffrey A Esq UNQUALIFIED83Asiya Javayant
1038Kaitlin OstroskyRussia2026-04-10Chapman, Ross E Esq PROPOSAL6Onyama Limba
1039Leon OldroydUnited Kingdom2026-04-21Truhlar And Truhlar Attys NEGOTIATION22Bernardo Dominic
1040Stacey MacleadItaly2026-04-14Commercial Press QUALIFIED47Asiya Javayant
1041Kadeem FlosiUnited Kingdom2026-04-15Rousseaux, Michael Esq NEGOTIATION72Onyama Limba
1042Faith GillianCanada2026-04-12Chemel, James L Cpa UNQUALIFIED98Stephen Shaw
1043Aruna FigeroaItaly2026-04-16Commercial Press UNQUALIFIED92Stephen Shaw
1044Aika InouyeAustralia2026-04-20Dorl, James J Esq NEGOTIATION79Elwin Sharvill
1045Greenwood BologniaAustralia2026-04-25Buckley Miller Wright UNQUALIFIED47Onyama Limba
1046Leja CaldareraJapan2026-04-25Benton, John B Jr NEW78Xuxue Feng
1047Rodrigues CampainArgentina2026-04-26Chanay, Jeffrey A Esq QUALIFIED22Onyama Limba
1048Darci PoquetteSpain2026-04-10Truhlar And Truhlar Attys RENEWAL91Ioni Bowcher
1049Isabel BowleyUnited Kingdom2026-04-29Buckley Miller Wright RENEWAL19Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Costa DilliardRussiaXuxue Feng RENEWAL
Morrow RutaIndiaAnna Fali PROPOSAL
Johnson SergiBrazilStephen Shaw RENEWAL
Leja CaldareraBrazilStephen Shaw PROPOSAL
Cody SaylorsCanadaXuxue Feng QUALIFIED
Nicolas IturbideArgentinaAsiya Javayant NEGOTIATION
Costa DilliardCanadaIoni Bowcher NEW
Claire TollnerUnited KingdomIoni Bowcher NEGOTIATION
James ButtSpainAnna Fali NEGOTIATION
Jennifer AmigonGermanyIoni Bowcher QUALIFIED
Leja CaldareraIndiaXuxue Feng PROPOSAL
Misaki RoysterSpainBernardo Dominic NEW
Clifford RimRussiaStephen Shaw QUALIFIED
Francesco ShinkoJapanElwin Sharvill PROPOSAL
Maisha RulapaughAustraliaAmy Elsner PROPOSAL
Stacey MacleadUnited KingdomAmy Elsner PROPOSAL
Stacey MacleadFranceElwin Sharvill NEW
Ricardo GauchoBrazilIvan Magalhaes UNQUALIFIED
Smith GlickBrazilStephen Shaw QUALIFIED
Tony FollerRussiaIoni Bowcher NEGOTIATION
Murillo MaletItalyAmy Elsner NEGOTIATION
Jennifer AmigonBrazilAsiya Javayant NEW
Mujtaba NickaBrazilStephen Shaw QUALIFIED
Sinclair WaycottGermanyAnna Fali RENEWAL
Francesco ShinkoItalyOnyama Limba UNQUALIFIED
Costa DilliardItalyIvan Magalhaes UNQUALIFIED
Aika InouyeFranceElwin Sharvill UNQUALIFIED
Jefferson SchemmerIndiaXuxue Feng NEGOTIATION
Tony FollerRussiaIoni Bowcher QUALIFIED
Morrow RutaSpainXuxue Feng NEGOTIATION
James ButtArgentinaAnna Fali UNQUALIFIED
Jeanfrancois VenereRussiaAnna Fali NEW
Misaki RoysterIndiaIoni Bowcher QUALIFIED
Aruna FigeroaRussiaAsiya Javayant RENEWAL
Nicolas IturbideCanadaBernardo Dominic PROPOSAL
Izzy GarufiArgentinaOnyama Limba QUALIFIED
Clifford RimFranceAsiya Javayant NEGOTIATION
Claire TollnerUnited KingdomStephen Shaw RENEWAL
Clifford RimItalyStephen Shaw QUALIFIED
Rodrigues CampainJapanElwin Sharvill UNQUALIFIED
Silvio SlusarskiIndiaXuxue Feng UNQUALIFIED
Deepesh ChuiArgentinaXuxue Feng RENEWAL
Murillo MaletBrazilAsiya Javayant PROPOSAL
Rodrigues CampainGermanyStephen Shaw PROPOSAL
Maisha RulapaughFranceBernardo Dominic NEW
Aika InouyeItalyIvan Magalhaes QUALIFIED
Stacey MacleadFranceElwin Sharvill NEW
Francesco ShinkoIndiaStephen Shaw RENEWAL
Cody SaylorsBrazilAsiya Javayant UNQUALIFIED
Smith GlickGermanyXuxue Feng QUALIFIED
Frozen Columns
Name
Ashley Doe
Francesco Shinko
Stacey Maclead
Claire Tollner
Silvio Slusarski
Darci Poquette
Octavia Malet
Francesco Shinko
Wickens Nestle
James Butt
Maria Marrier
Arvin Albares
Isabel Bowley
Ricardo Gaucho
Maria Marrier
Stacey Maclead
Silvio Slusarski
Francesco Shinko
Murillo Malet
Cody Saylors
Smith Glick
Darci Poquette
Faith Gillian
Antonio Caudy
Clifford Rim
Isabel Bowley
Greenwood Bolognia
Salvatore Stockham
Emily Whobrey
Izzy Garufi
Mujtaba Nicka
Rodrigues Campain
Kadeem Flosi
Jefferson Schemmer
Chavez Briddick
Jefferson Schemmer
Claire Tollner
Tony Foller
James Butt
Smith Glick
Munro Ferencz
Faith Gillian
Alejandro Perin
Ashley Doe
Maisha Rulapaugh
Juan Wieser
Johnson Sergi
Mayumi Kolmetz
Faith Gillian
Francesco Shinko
IdCountryDate
1000France2026-04-02
1001Brazil2026-04-25
1002Canada2026-03-31
1003Australia2026-04-10
1004Argentina2026-04-24
1005United Kingdom2026-04-25
1006Canada2026-04-07
1007Italy2026-04-23
1008Australia2026-04-24
1009Canada2026-04-11
1010Germany2026-04-03
1011Australia2026-04-10
1012Japan2026-04-07
1013Brazil2026-04-28
1014Canada2026-04-20
1015United Kingdom2026-04-20
1016Argentina2026-04-18
1017Canada2026-04-18
1018United Kingdom2026-04-09
1019India2026-04-01
1020United Kingdom2026-04-14
1021Russia2026-04-01
1022Russia2026-04-29
1023Spain2026-04-09
1024Australia2026-04-01
1025France2026-04-29
1026Australia2026-04-19
1027Australia2026-04-05
1028Brazil2026-03-31
1029Germany2026-04-14
1030Japan2026-04-07
1031Germany2026-04-09
1032Argentina2026-04-20
1033France2026-04-25
1034Canada2026-04-24
1035Canada2026-04-13
1036Argentina2026-04-07
1037Canada2026-04-18
1038France2026-04-19
1039France2026-04-14
1040Australia2026-04-15
1041Argentina2026-04-06
1042India2026-04-28
1043Brazil2026-04-12
1044Germany2026-04-17
1045United Kingdom2026-04-04
1046France2026-04-12
1047Germany2026-04-15
1048Germany2026-04-16
1049Japan2026-04-16

On-Demand Data

NameIdCountryDate
Maisha Rulapaugh1000Argentina2026-04-17
Aruna Figeroa1001Japan2026-04-18
Arvin Albares1002Spain2026-04-05
Ashley Doe1003Germany2026-04-04
Aika Inouye1004France2026-04-02
Arvin Albares1005India2026-04-27
Tony Foller1006Spain2026-04-26
Chavez Briddick1007Russia2026-04-13
Leja Caldarera1008Australia2026-04-04
Emily Whobrey1009Germany2026-04-12
Alejandro Perin1010Brazil2026-04-02
Jones Vocelka1011Japan2026-04-20
Arvin Albares1012Germany2026-04-29
Johnson Sergi1013Russia2026-04-22
Emily Whobrey1014Japan2026-04-22
Cody Saylors1015Germany2026-04-07
Deepesh Chui1016United Kingdom2026-04-07
Maisha Rulapaugh1017United Kingdom2026-04-20
Silvio Slusarski1018Spain2026-04-18
Faith Gillian1019United Kingdom2026-04-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Misaki RoysterAustraliaIoni Bowcher QUALIFIED
Munro FerenczAustraliaXuxue Feng NEW
Julie StensethItalyElwin Sharvill NEGOTIATION
Cody SaylorsAustraliaAsiya Javayant UNQUALIFIED
Smith GlickCanadaIoni Bowcher RENEWAL
Faith GillianItalyXuxue Feng UNQUALIFIED
Jennifer AmigonFranceIvan Magalhaes NEW
Jefferson SchemmerUnited KingdomOnyama Limba UNQUALIFIED
Morrow RutaArgentinaElwin Sharvill UNQUALIFIED
James ButtUnited KingdomIvan Magalhaes UNQUALIFIED
Izzy GarufiJapanOnyama Limba PROPOSAL
Darci PoquetteJapanStephen Shaw UNQUALIFIED
Jefferson SchemmerBrazilOnyama Limba RENEWAL
Jeanfrancois VenereJapanXuxue Feng QUALIFIED
Mujtaba NickaAustraliaXuxue Feng RENEWAL
Jones VocelkaItalyAsiya Javayant PROPOSAL
Jones VocelkaGermanyStephen Shaw NEW
Izzy GarufiGermanyXuxue Feng RENEWAL
Deepesh ChuiCanadaBernardo Dominic PROPOSAL
Wickens NestleUnited KingdomXuxue Feng NEGOTIATION
Mujtaba NickaUnited KingdomAmy Elsner PROPOSAL
Mayumi KolmetzCanadaAmy Elsner PROPOSAL
Leon OldroydJapanIvan Magalhaes PROPOSAL
Aditya KuskoCanadaIoni Bowcher PROPOSAL
Kaitlin OstroskyAustraliaElwin Sharvill QUALIFIED
Nicolas IturbideCanadaAmy Elsner NEGOTIATION
Costa DilliardSpainAsiya Javayant QUALIFIED
Smith GlickJapanOnyama Limba PROPOSAL
Nicolas IturbideGermanyOnyama Limba RENEWAL
Isabel BowleyUnited KingdomAnna Fali NEGOTIATION
Sinclair WaycottItalyIoni Bowcher RENEWAL
Murillo MaletArgentinaBernardo Dominic UNQUALIFIED
Rodrigues CampainIndiaIvan Magalhaes PROPOSAL
Aika InouyeUnited KingdomStephen Shaw RENEWAL
James ButtSpainIvan Magalhaes UNQUALIFIED
Arvin AlbaresBrazilAmy Elsner NEGOTIATION
Jeanfrancois VenereIndiaElwin Sharvill PROPOSAL
Kadeem FlosiRussiaBernardo Dominic RENEWAL
James ButtSpainIoni Bowcher PROPOSAL
Izzy GarufiRussiaOnyama Limba PROPOSAL

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