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
Kadeem FlosiJapanAnna Fali QUALIFIED
Claire TollnerFranceXuxue Feng UNQUALIFIED
Sinclair WaycottUnited KingdomOnyama Limba NEW
Silvio SlusarskiRussiaIvan Magalhaes NEGOTIATION
Julie StensethRussiaIvan Magalhaes NEW
Julie StensethRussiaIoni Bowcher NEGOTIATION
Clifford RimAustraliaIoni Bowcher RENEWAL
Kadeem FlosiAustraliaIvan Magalhaes PROPOSAL
Aika InouyeRussiaXuxue Feng QUALIFIED
Ricardo GauchoIndiaIoni Bowcher NEW
Maria MarrierAustraliaStephen Shaw RENEWAL
Stacey MacleadRussiaElwin Sharvill PROPOSAL
Juan WieserUnited KingdomAnna Fali QUALIFIED
David DarakjyRussiaXuxue Feng UNQUALIFIED
Jennifer AmigonGermanyAsiya Javayant QUALIFIED
Clifford RimSpainBernardo Dominic UNQUALIFIED
Munro FerenczFranceIoni Bowcher NEGOTIATION
Leon OldroydCanadaAsiya Javayant NEGOTIATION
Juan WieserAustraliaIoni Bowcher PROPOSAL
Nicolas IturbideIndiaStephen Shaw PROPOSAL
Johnson SergiJapanAsiya Javayant PROPOSAL
Arvin AlbaresJapanStephen Shaw NEW
Octavia MaletSpainOnyama Limba NEW
Isabel BowleySpainElwin Sharvill PROPOSAL
Mujtaba NickaGermanyAnna Fali QUALIFIED
Juan WieserArgentinaXuxue Feng NEGOTIATION
Arvin AlbaresUnited KingdomOnyama Limba RENEWAL
Jones VocelkaBrazilAsiya Javayant QUALIFIED
Maria MarrierUnited KingdomStephen Shaw RENEWAL
Silvio SlusarskiCanadaIoni Bowcher NEGOTIATION
Arvin AlbaresUnited KingdomAsiya Javayant RENEWAL
Misaki RoysterUnited KingdomIoni Bowcher PROPOSAL
Kaitlin OstroskySpainXuxue Feng UNQUALIFIED
Octavia MaletFranceXuxue Feng QUALIFIED
Emily WhobreyFranceStephen Shaw RENEWAL
Morrow RutaCanadaIoni Bowcher PROPOSAL
Mujtaba NickaRussiaOnyama Limba UNQUALIFIED
Faith GillianAustraliaXuxue Feng QUALIFIED
Jeanfrancois VenereItalyElwin Sharvill NEGOTIATION
Rodrigues CampainCanadaBernardo Dominic QUALIFIED
Antonio CaudyBrazilElwin Sharvill PROPOSAL
Costa DilliardRussiaAsiya Javayant QUALIFIED
Claire TollnerFranceAsiya Javayant RENEWAL
Emily WhobreyArgentinaXuxue Feng UNQUALIFIED
Rodrigues CampainSpainAnna Fali UNQUALIFIED
Munro FerenczIndiaIoni Bowcher RENEWAL
Arvin AlbaresIndiaOnyama Limba PROPOSAL
Ashley DoeFranceXuxue Feng RENEWAL
Jeanfrancois VenereRussiaIvan Magalhaes PROPOSAL
Tony FollerJapanAsiya Javayant QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Deepesh ChuiUnited KingdomIvan Magalhaes QUALIFIED
Silvio SlusarskiBrazilOnyama Limba PROPOSAL
Silvio SlusarskiFranceIoni Bowcher NEGOTIATION
Smith GlickSpainStephen Shaw PROPOSAL
Alejandro PerinUnited KingdomIvan Magalhaes NEGOTIATION
Greenwood BologniaGermanyStephen Shaw UNQUALIFIED
Jennifer AmigonUnited KingdomXuxue Feng QUALIFIED
Alejandro PerinRussiaXuxue Feng PROPOSAL
Francesco ShinkoItalyStephen Shaw NEGOTIATION
Izzy GarufiRussiaBernardo Dominic NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Leon OldroydUnited Kingdom2025-09-09Feltz Printing Service QUALIFIED36Ivan Magalhaes
1001Alejandro PerinSpain2025-08-26Truhlar And Truhlar Attys UNQUALIFIED68Ivan Magalhaes
1002Chavez BriddickJapan2025-09-02Printing Dimensions PROPOSAL56Anna Fali
1003Ricardo GauchoSpain2025-09-01Chanay, Jeffrey A Esq QUALIFIED50Amy Elsner
1004Chavez BriddickBrazil2025-08-28Morlong Associates NEW71Bernardo Dominic
1005Chavez BriddickArgentina2025-09-10Chemel, James L Cpa UNQUALIFIED98Ioni Bowcher
1006Isabel BowleyCanada2025-08-19Feltz Printing Service QUALIFIED76Xuxue Feng
1007Izzy GarufiArgentina2025-08-27Benton, John B Jr QUALIFIED6Ivan Magalhaes
1008Greenwood BologniaGermany2025-08-27Truhlar And Truhlar Attys NEGOTIATION21Elwin Sharvill
1009Ivar PaprockiIndia2025-08-22Chapman, Ross E Esq UNQUALIFIED46Ioni Bowcher
1010Izzy GarufiGermany2025-08-28Commercial Press QUALIFIED17Elwin Sharvill
1011Aditya KuskoGermany2025-09-12Feiner Bros UNQUALIFIED93Elwin Sharvill
1012Johnson SergiAustralia2025-08-23Truhlar And Truhlar Attys PROPOSAL26Ioni Bowcher
1013Maria MarrierRussia2025-09-06Chemel, James L Cpa PROPOSAL8Elwin Sharvill
1014Tony FollerUnited Kingdom2025-08-28Morlong Associates UNQUALIFIED22Ivan Magalhaes
1015Faith GillianAustralia2025-08-27Rangoni Of Florence NEGOTIATION81Xuxue Feng
1016Isabel BowleyBrazil2025-08-26Buckley Miller Wright UNQUALIFIED29Xuxue Feng
1017Morrow RutaSpain2025-08-17Chanay, Jeffrey A Esq UNQUALIFIED82Ivan Magalhaes
1018Salvatore StockhamGermany2025-08-26Benton, John B Jr UNQUALIFIED63Onyama Limba
1019Stacey MacleadUnited Kingdom2025-09-13Feiner Bros PROPOSAL31Asiya Javayant
1020Cody SaylorsRussia2025-08-27King, Christopher A Esq QUALIFIED26Ivan Magalhaes
1021Smith GlickUnited Kingdom2025-08-21Rangoni Of Florence RENEWAL33Asiya Javayant
1022James ButtUnited Kingdom2025-09-01Rousseaux, Michael Esq NEGOTIATION97Anna Fali
1023Ivar PaprockiBrazil2025-09-11Morlong Associates UNQUALIFIED64Ioni Bowcher
1024Wickens NestleItaly2025-09-02Chapman, Ross E Esq NEW43Elwin Sharvill
1025Aditya KuskoAustralia2025-09-02Chanay, Jeffrey A Esq UNQUALIFIED87Bernardo Dominic
1026Misaki RoysterGermany2025-08-27Benton, John B Jr NEW58Xuxue Feng
1027Adams MorascaUnited Kingdom2025-09-01Feiner Bros NEGOTIATION61Bernardo Dominic
1028James ButtFrance2025-08-20Chapman, Ross E Esq NEW94Asiya Javayant
1029Kaitlin OstroskyAustralia2025-08-18Rangoni Of Florence PROPOSAL63Bernardo Dominic
1030Leon OldroydFrance2025-08-27Feiner Bros NEGOTIATION46Anna Fali
1031Munro FerenczAustralia2025-09-02Rangoni Of Florence NEGOTIATION66Elwin Sharvill
1032Sinclair WaycottJapan2025-08-28Truhlar And Truhlar Attys QUALIFIED33Elwin Sharvill
1033Ashley DoeArgentina2025-08-27Feltz Printing Service UNQUALIFIED2Asiya Javayant
1034Chavez BriddickCanada2025-09-08Rangoni Of Florence QUALIFIED23Anna Fali
1035Clifford RimRussia2025-09-13Chemel, James L Cpa NEW78Anna Fali
1036Darci PoquetteJapan2025-09-01Rangoni Of Florence RENEWAL96Amy Elsner
1037Kaitlin OstroskyAustralia2025-08-31Feltz Printing Service RENEWAL35Anna Fali
1038Aika InouyeSpain2025-08-21Chanay, Jeffrey A Esq QUALIFIED86Xuxue Feng
1039Francesco ShinkoGermany2025-09-12Feiner Bros NEGOTIATION19Stephen Shaw
1040Silvio SlusarskiRussia2025-09-12King, Christopher A Esq NEGOTIATION9Ivan Magalhaes
1041Chavez BriddickUnited Kingdom2025-08-28Buckley Miller Wright PROPOSAL82Xuxue Feng
1042Kadeem FlosiCanada2025-09-10Chapman, Ross E Esq UNQUALIFIED90Bernardo Dominic
1043Maisha RulapaughArgentina2025-08-18Chemel, James L Cpa QUALIFIED21Anna Fali
1044Adams MorascaItaly2025-09-03Commercial Press QUALIFIED83Asiya Javayant
1045Sinclair WaycottGermany2025-08-21Benton, John B Jr RENEWAL44Ivan Magalhaes
1046David DarakjyCanada2025-08-23Commercial Press NEGOTIATION97Amy Elsner
1047Silvio SlusarskiIndia2025-09-12Chemel, James L Cpa UNQUALIFIED23Bernardo Dominic
1048Isabel BowleySpain2025-08-30Chapman, Ross E Esq NEW52Elwin Sharvill
1049Jefferson SchemmerFrance2025-08-28Chapman, Ross E Esq PROPOSAL54Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jones VocelkaAustraliaBernardo Dominic RENEWAL
Claire TollnerAustraliaElwin Sharvill RENEWAL
Nicolas IturbideSpainBernardo Dominic NEW
Rodrigues CampainAustraliaXuxue Feng PROPOSAL
Antonio CaudyBrazilStephen Shaw UNQUALIFIED
Clifford RimFranceXuxue Feng UNQUALIFIED
Mayumi KolmetzJapanAsiya Javayant RENEWAL
Arvin AlbaresSpainAnna Fali NEGOTIATION
Adams MorascaJapanAsiya Javayant UNQUALIFIED
Nicolas IturbideJapanXuxue Feng UNQUALIFIED
Jones VocelkaArgentinaAsiya Javayant NEGOTIATION
Smith GlickGermanyIvan Magalhaes NEW
Adams MorascaAustraliaStephen Shaw RENEWAL
Wickens NestleItalyIvan Magalhaes PROPOSAL
Murillo MaletGermanyAnna Fali PROPOSAL
Jefferson SchemmerJapanElwin Sharvill PROPOSAL
Murillo MaletArgentinaOnyama Limba RENEWAL
Greenwood BologniaIndiaStephen Shaw NEW
Jennifer AmigonJapanElwin Sharvill UNQUALIFIED
Maria MarrierJapanAnna Fali PROPOSAL
Murillo MaletIndiaAsiya Javayant NEW
Tony FollerRussiaOnyama Limba QUALIFIED
Aditya KuskoArgentinaXuxue Feng PROPOSAL
Silvio SlusarskiArgentinaOnyama Limba UNQUALIFIED
Greenwood BologniaItalyAsiya Javayant PROPOSAL
Munro FerenczArgentinaBernardo Dominic RENEWAL
Faith GillianRussiaBernardo Dominic NEW
Morrow RutaRussiaAmy Elsner PROPOSAL
Wickens NestleJapanStephen Shaw RENEWAL
Jennifer AmigonJapanAnna Fali NEW
Jones VocelkaAustraliaElwin Sharvill PROPOSAL
Stacey MacleadGermanyXuxue Feng NEGOTIATION
Octavia MaletItalyXuxue Feng PROPOSAL
Faith GillianItalyAnna Fali NEW
Antonio CaudyItalyAsiya Javayant RENEWAL
Chavez BriddickSpainOnyama Limba UNQUALIFIED
David DarakjyGermanyAmy Elsner UNQUALIFIED
Clifford RimItalyXuxue Feng NEGOTIATION
Leja CaldareraBrazilAmy Elsner NEW
Octavia MaletSpainXuxue Feng UNQUALIFIED
Jeanfrancois VenereUnited KingdomIvan Magalhaes UNQUALIFIED
Adams MorascaItalyIvan Magalhaes NEGOTIATION
Salvatore StockhamRussiaXuxue Feng RENEWAL
Claire TollnerSpainOnyama Limba QUALIFIED
Jefferson SchemmerItalyAmy Elsner PROPOSAL
David DarakjyItalyElwin Sharvill NEGOTIATION
Salvatore StockhamItalyStephen Shaw UNQUALIFIED
Mayumi KolmetzJapanElwin Sharvill RENEWAL
Rodrigues CampainRussiaAnna Fali NEGOTIATION
Rodrigues CampainItalyAmy Elsner NEW
Frozen Columns
Name
Chavez Briddick
Julie Stenseth
Murillo Malet
Emily Whobrey
Greenwood Bolognia
Alejandro Perin
Francesco Shinko
Izzy Garufi
Morrow Ruta
Claire Tollner
Silvio Slusarski
Chavez Briddick
Izzy Garufi
Ivar Paprocki
Darci Poquette
Morrow Ruta
Mayumi Kolmetz
Ashley Doe
Francesco Shinko
Octavia Malet
Jennifer Amigon
Antonio Caudy
Francesco Shinko
Isabel Bowley
Stacey Maclead
Silvio Slusarski
Kaitlin Ostrosky
Antonio Caudy
Chavez Briddick
Kaitlin Ostrosky
Aruna Figeroa
Faith Gillian
Leon Oldroyd
Izzy Garufi
Sinclair Waycott
Kaitlin Ostrosky
Nicolas Iturbide
Leon Oldroyd
Faith Gillian
Julie Stenseth
Jeanfrancois Venere
Francesco Shinko
Aditya Kusko
Jennifer Amigon
Leja Caldarera
Maisha Rulapaugh
Alejandro Perin
Tony Foller
Faith Gillian
Nicolas Iturbide
IdCountryDate
1000India2025-09-15
1001Japan2025-09-07
1002Japan2025-09-11
1003United Kingdom2025-08-20
1004Italy2025-08-18
1005France2025-09-15
1006United Kingdom2025-09-13
1007Japan2025-09-05
1008Germany2025-08-31
1009Canada2025-08-22
1010France2025-09-08
1011Germany2025-08-29
1012Germany2025-09-08
1013Argentina2025-08-20
1014Italy2025-08-30
1015Spain2025-09-14
1016Canada2025-09-13
1017United Kingdom2025-08-29
1018Italy2025-08-27
1019France2025-08-28
1020India2025-08-22
1021Argentina2025-08-31
1022Argentina2025-09-10
1023Argentina2025-08-20
1024Germany2025-09-06
1025Russia2025-08-17
1026France2025-09-13
1027India2025-08-27
1028Brazil2025-09-14
1029France2025-09-02
1030Australia2025-09-15
1031Argentina2025-08-22
1032Japan2025-08-24
1033Argentina2025-09-10
1034Brazil2025-08-24
1035France2025-09-13
1036India2025-09-07
1037Spain2025-08-31
1038Australia2025-09-14
1039Argentina2025-08-29
1040Russia2025-08-25
1041Russia2025-09-14
1042Germany2025-08-26
1043Spain2025-08-23
1044Brazil2025-08-27
1045Australia2025-09-10
1046Canada2025-09-08
1047Italy2025-08-27
1048Brazil2025-09-12
1049Italy2025-08-28

On-Demand Data

NameIdCountryDate
Kaitlin Ostrosky1000Germany2025-09-01
Chavez Briddick1001Japan2025-08-18
Leja Caldarera1002Brazil2025-08-24
Adams Morasca1003India2025-09-04
Maisha Rulapaugh1004Japan2025-08-27
Antonio Caudy1005Russia2025-08-17
Mayumi Kolmetz1006Argentina2025-08-27
Smith Glick1007India2025-09-12
Arvin Albares1008Russia2025-09-08
Wickens Nestle1009Australia2025-08-20
Juan Wieser1010Argentina2025-09-08
Smith Glick1011Italy2025-08-17
Antonio Caudy1012Australia2025-09-08
Stacey Maclead1013Japan2025-08-18
Mujtaba Nicka1014Italy2025-08-27
Maisha Rulapaugh1015India2025-08-31
David Darakjy1016Germany2025-09-07
Deepesh Chui1017Germany2025-09-13
Aika Inouye1018Spain2025-08-27
Maria Marrier1019Argentina2025-08-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Sinclair WaycottJapanIvan Magalhaes PROPOSAL
Leon OldroydIndiaXuxue Feng QUALIFIED
Izzy GarufiIndiaAmy Elsner PROPOSAL
Faith GillianItalyIvan Magalhaes NEW
Maria MarrierArgentinaOnyama Limba RENEWAL
Faith GillianFranceBernardo Dominic RENEWAL
Murillo MaletSpainOnyama Limba RENEWAL
Morrow RutaGermanyAnna Fali PROPOSAL
Emily WhobreyUnited KingdomAmy Elsner PROPOSAL
Aruna FigeroaItalyAmy Elsner NEW
Darci PoquetteCanadaOnyama Limba RENEWAL
Cody SaylorsItalyBernardo Dominic UNQUALIFIED
Jefferson SchemmerUnited KingdomAsiya Javayant RENEWAL
Ivar PaprockiSpainOnyama Limba QUALIFIED
Leon OldroydSpainAmy Elsner NEW
Jeanfrancois VenereArgentinaIoni Bowcher NEW
Jeanfrancois VenereJapanAnna Fali RENEWAL
Salvatore StockhamRussiaIoni Bowcher NEGOTIATION
Alejandro PerinSpainIvan Magalhaes PROPOSAL
Sinclair WaycottRussiaAnna Fali NEW
Jennifer AmigonBrazilXuxue Feng PROPOSAL
Murillo MaletSpainElwin Sharvill UNQUALIFIED
Maria MarrierUnited KingdomElwin Sharvill QUALIFIED
Julie StensethBrazilXuxue Feng RENEWAL
Aruna FigeroaJapanIoni Bowcher QUALIFIED
Rodrigues CampainIndiaAnna Fali NEW
Ricardo GauchoAustraliaIvan Magalhaes UNQUALIFIED
Cody SaylorsSpainBernardo Dominic NEW
Stacey MacleadSpainAnna Fali PROPOSAL
Jones VocelkaCanadaXuxue Feng PROPOSAL
Emily WhobreyBrazilAmy Elsner PROPOSAL
Darci PoquetteSpainXuxue Feng UNQUALIFIED
Morrow RutaJapanAsiya Javayant RENEWAL
Ashley DoeArgentinaElwin Sharvill QUALIFIED
Emily WhobreyCanadaAmy Elsner NEGOTIATION
Costa DilliardRussiaAsiya Javayant NEGOTIATION
Smith GlickFranceXuxue Feng QUALIFIED
Maisha RulapaughGermanyXuxue Feng NEGOTIATION
Rodrigues CampainIndiaAnna Fali UNQUALIFIED
Rodrigues CampainIndiaAmy Elsner 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>