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
Darci PoquetteSpainAnna Fali UNQUALIFIED
Smith GlickIndiaIvan Magalhaes NEW
Antonio CaudyIndiaIoni Bowcher NEGOTIATION
James ButtItalyXuxue Feng RENEWAL
Octavia MaletIndiaIoni Bowcher RENEWAL
Silvio SlusarskiIndiaIoni Bowcher QUALIFIED
Stacey MacleadAustraliaXuxue Feng PROPOSAL
Octavia MaletSpainBernardo Dominic UNQUALIFIED
Mujtaba NickaUnited KingdomIvan Magalhaes RENEWAL
Jefferson SchemmerUnited KingdomIoni Bowcher PROPOSAL
Jones VocelkaJapanOnyama Limba RENEWAL
Wickens NestleIndiaAsiya Javayant QUALIFIED
Johnson SergiGermanyStephen Shaw PROPOSAL
Sinclair WaycottIndiaElwin Sharvill RENEWAL
Julie StensethBrazilXuxue Feng NEGOTIATION
Kaitlin OstroskyAustraliaBernardo Dominic UNQUALIFIED
Kaitlin OstroskyIndiaElwin Sharvill PROPOSAL
Salvatore StockhamAustraliaAsiya Javayant UNQUALIFIED
Greenwood BologniaAustraliaAsiya Javayant PROPOSAL
Morrow RutaUnited KingdomAmy Elsner RENEWAL
Julie StensethSpainAmy Elsner NEW
Silvio SlusarskiArgentinaElwin Sharvill PROPOSAL
Arvin AlbaresJapanIoni Bowcher PROPOSAL
Leon OldroydFranceXuxue Feng NEW
Nicolas IturbideArgentinaIoni Bowcher NEW
Alejandro PerinCanadaOnyama Limba PROPOSAL
Adams MorascaFranceAsiya Javayant NEW
Nicolas IturbideUnited KingdomBernardo Dominic NEW
Aditya KuskoItalyAmy Elsner QUALIFIED
Alejandro PerinFranceIoni Bowcher RENEWAL
Costa DilliardUnited KingdomOnyama Limba UNQUALIFIED
Ricardo GauchoFranceAmy Elsner UNQUALIFIED
Costa DilliardArgentinaAnna Fali NEW
Murillo MaletGermanyElwin Sharvill NEW
Jennifer AmigonGermanyElwin Sharvill RENEWAL
Juan WieserIndiaAnna Fali RENEWAL
Antonio CaudyBrazilIoni Bowcher PROPOSAL
Misaki RoysterArgentinaAmy Elsner QUALIFIED
Izzy GarufiUnited KingdomStephen Shaw PROPOSAL
Tony FollerIndiaAmy Elsner NEGOTIATION
Stacey MacleadItalyIvan Magalhaes RENEWAL
Smith GlickUnited KingdomIoni Bowcher RENEWAL
Misaki RoysterBrazilElwin Sharvill NEW
Munro FerenczUnited KingdomIvan Magalhaes PROPOSAL
Aditya KuskoItalyIvan Magalhaes NEGOTIATION
Aruna FigeroaCanadaBernardo Dominic RENEWAL
Salvatore StockhamFranceOnyama Limba RENEWAL
Jones VocelkaAustraliaIoni Bowcher NEW
Tony FollerFranceBernardo Dominic RENEWAL
Silvio SlusarskiSpainAmy Elsner UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Morrow RutaJapanAsiya Javayant NEW
Jones VocelkaArgentinaAnna Fali QUALIFIED
Jefferson SchemmerJapanStephen Shaw UNQUALIFIED
Costa DilliardArgentinaIoni Bowcher PROPOSAL
Alejandro PerinUnited KingdomAnna Fali QUALIFIED
Faith GillianIndiaOnyama Limba QUALIFIED
Darci PoquetteUnited KingdomAmy Elsner PROPOSAL
Alejandro PerinBrazilAsiya Javayant UNQUALIFIED
Deepesh ChuiGermanyBernardo Dominic QUALIFIED
Alejandro PerinItalyIoni Bowcher UNQUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Octavia MaletArgentina2025-09-25Commercial Press RENEWAL56Ivan Magalhaes
1001Salvatore StockhamGermany2025-10-12Commercial Press PROPOSAL14Bernardo Dominic
1002James ButtFrance2025-09-23Buckley Miller Wright NEW55Xuxue Feng
1003Chavez BriddickGermany2025-10-12Chapman, Ross E Esq NEGOTIATION54Elwin Sharvill
1004Kadeem FlosiFrance2025-09-27Buckley Miller Wright NEGOTIATION71Amy Elsner
1005Munro FerenczFrance2025-10-03Chemel, James L Cpa UNQUALIFIED46Amy Elsner
1006Jefferson SchemmerAustralia2025-09-15Chanay, Jeffrey A Esq NEGOTIATION64Anna Fali
1007Misaki RoysterGermany2025-10-06Morlong Associates NEGOTIATION45Xuxue Feng
1008Greenwood BologniaRussia2025-10-12Truhlar And Truhlar Attys PROPOSAL32Anna Fali
1009Faith GillianUnited Kingdom2025-09-26Chemel, James L Cpa NEW39Ivan Magalhaes
1010Murillo MaletUnited Kingdom2025-10-12Buckley Miller Wright NEW10Bernardo Dominic
1011Munro FerenczSpain2025-09-22Dorl, James J Esq PROPOSAL93Bernardo Dominic
1012Emily WhobreyItaly2025-09-24Dorl, James J Esq UNQUALIFIED37Onyama Limba
1013Stacey MacleadSpain2025-09-13King, Christopher A Esq RENEWAL86Ioni Bowcher
1014Tony FollerItaly2025-09-25Chapman, Ross E Esq UNQUALIFIED72Bernardo Dominic
1015Emily WhobreyJapan2025-09-26Truhlar And Truhlar Attys RENEWAL29Xuxue Feng
1016Aruna FigeroaRussia2025-09-15Chanay, Jeffrey A Esq NEGOTIATION62Elwin Sharvill
1017Isabel BowleyGermany2025-09-22Buckley Miller Wright RENEWAL40Xuxue Feng
1018Nicolas IturbideIndia2025-09-22King, Christopher A Esq QUALIFIED65Ivan Magalhaes
1019Arvin AlbaresCanada2025-09-28Chanay, Jeffrey A Esq UNQUALIFIED1Bernardo Dominic
1020Aika InouyeBrazil2025-10-11Chanay, Jeffrey A Esq NEW48Ivan Magalhaes
1021Octavia MaletAustralia2025-09-18Truhlar And Truhlar Attys PROPOSAL44Anna Fali
1022Ivar PaprockiCanada2025-09-15Buckley Miller Wright PROPOSAL48Xuxue Feng
1023Maria MarrierUnited Kingdom2025-10-03Chemel, James L Cpa RENEWAL27Stephen Shaw
1024Adams MorascaAustralia2025-10-01Printing Dimensions UNQUALIFIED84Elwin Sharvill
1025Sinclair WaycottFrance2025-09-17Truhlar And Truhlar Attys UNQUALIFIED81Stephen Shaw
1026Izzy GarufiIndia2025-09-26Buckley Miller Wright NEW70Stephen Shaw
1027Antonio CaudyAustralia2025-09-24Commercial Press PROPOSAL70Onyama Limba
1028Jefferson SchemmerIndia2025-10-01Chapman, Ross E Esq QUALIFIED33Ioni Bowcher
1029Julie StensethSpain2025-10-09Chapman, Ross E Esq UNQUALIFIED90Xuxue Feng
1030Salvatore StockhamBrazil2025-09-17Truhlar And Truhlar Attys UNQUALIFIED67Onyama Limba
1031Mayumi KolmetzAustralia2025-09-21Chemel, James L Cpa PROPOSAL0Ioni Bowcher
1032Smith GlickAustralia2025-10-07King, Christopher A Esq NEGOTIATION58Ioni Bowcher
1033Stacey MacleadUnited Kingdom2025-09-25Truhlar And Truhlar Attys PROPOSAL8Anna Fali
1034Jennifer AmigonJapan2025-10-10Chanay, Jeffrey A Esq NEGOTIATION38Amy Elsner
1035Sinclair WaycottJapan2025-10-02Commercial Press RENEWAL38Xuxue Feng
1036Jennifer AmigonIndia2025-09-20Feltz Printing Service QUALIFIED0Ivan Magalhaes
1037Faith GillianJapan2025-09-14Benton, John B Jr NEW20Elwin Sharvill
1038Mayumi KolmetzJapan2025-09-15Chanay, Jeffrey A Esq NEGOTIATION32Asiya Javayant
1039Stacey MacleadGermany2025-10-11Dorl, James J Esq NEW1Elwin Sharvill
1040Morrow RutaArgentina2025-09-30Dorl, James J Esq PROPOSAL55Amy Elsner
1041Rodrigues CampainUnited Kingdom2025-09-27Feltz Printing Service QUALIFIED28Ioni Bowcher
1042Jefferson SchemmerSpain2025-10-06Feiner Bros PROPOSAL43Xuxue Feng
1043Chavez BriddickRussia2025-10-02Feltz Printing Service NEW99Xuxue Feng
1044Jeanfrancois VenereGermany2025-10-11King, Christopher A Esq NEW6Ioni Bowcher
1045Misaki RoysterUnited Kingdom2025-10-12Commercial Press RENEWAL51Ivan Magalhaes
1046Costa DilliardSpain2025-09-13Printing Dimensions QUALIFIED72Ivan Magalhaes
1047Francesco ShinkoGermany2025-09-28Dorl, James J Esq PROPOSAL98Xuxue Feng
1048Aruna FigeroaUnited Kingdom2025-10-09Chapman, Ross E Esq UNQUALIFIED59Xuxue Feng
1049Chavez BriddickFrance2025-09-27Rousseaux, Michael Esq NEGOTIATION22Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Aruna FigeroaJapanIoni Bowcher QUALIFIED
Alejandro PerinSpainIvan Magalhaes NEGOTIATION
Murillo MaletCanadaStephen Shaw UNQUALIFIED
Costa DilliardSpainStephen Shaw NEGOTIATION
Silvio SlusarskiRussiaAnna Fali RENEWAL
Francesco ShinkoFranceAsiya Javayant RENEWAL
Chavez BriddickJapanXuxue Feng PROPOSAL
Emily WhobreyJapanOnyama Limba NEGOTIATION
Francesco ShinkoGermanyIoni Bowcher UNQUALIFIED
Jeanfrancois VenereFranceXuxue Feng UNQUALIFIED
Aruna FigeroaIndiaXuxue Feng RENEWAL
Darci PoquetteRussiaIvan Magalhaes UNQUALIFIED
Mujtaba NickaItalyIvan Magalhaes RENEWAL
Sinclair WaycottCanadaElwin Sharvill UNQUALIFIED
Murillo MaletIndiaIvan Magalhaes UNQUALIFIED
Leja CaldareraJapanAnna Fali NEW
Faith GillianSpainOnyama Limba PROPOSAL
Nicolas IturbideArgentinaIoni Bowcher NEGOTIATION
Mayumi KolmetzGermanyElwin Sharvill UNQUALIFIED
James ButtJapanStephen Shaw QUALIFIED
Chavez BriddickCanadaStephen Shaw PROPOSAL
Arvin AlbaresUnited KingdomBernardo Dominic UNQUALIFIED
Leja CaldareraArgentinaOnyama Limba PROPOSAL
Alejandro PerinBrazilAsiya Javayant QUALIFIED
Julie StensethBrazilAnna Fali UNQUALIFIED
Tony FollerJapanAsiya Javayant UNQUALIFIED
David DarakjyGermanyIvan Magalhaes QUALIFIED
Tony FollerBrazilStephen Shaw NEW
Chavez BriddickIndiaStephen Shaw RENEWAL
Salvatore StockhamItalyAnna Fali UNQUALIFIED
Mayumi KolmetzItalyAsiya Javayant UNQUALIFIED
Cody SaylorsArgentinaAmy Elsner NEGOTIATION
Stacey MacleadIndiaElwin Sharvill NEGOTIATION
Cody SaylorsBrazilStephen Shaw NEGOTIATION
Jeanfrancois VenereRussiaAsiya Javayant RENEWAL
Tony FollerAustraliaAmy Elsner QUALIFIED
Izzy GarufiGermanyBernardo Dominic QUALIFIED
Arvin AlbaresCanadaElwin Sharvill NEGOTIATION
Mayumi KolmetzJapanStephen Shaw RENEWAL
Izzy GarufiIndiaOnyama Limba NEGOTIATION
Mujtaba NickaArgentinaElwin Sharvill NEW
Clifford RimFranceElwin Sharvill UNQUALIFIED
Leon OldroydCanadaXuxue Feng UNQUALIFIED
Darci PoquetteUnited KingdomAnna Fali QUALIFIED
Kadeem FlosiJapanOnyama Limba UNQUALIFIED
Jefferson SchemmerJapanAnna Fali RENEWAL
Sinclair WaycottRussiaXuxue Feng PROPOSAL
Claire TollnerFranceAsiya Javayant QUALIFIED
Leon OldroydItalyAnna Fali RENEWAL
Aruna FigeroaUnited KingdomAsiya Javayant NEW
Frozen Columns
Name
Mujtaba Nicka
Juan Wieser
Julie Stenseth
Smith Glick
Arvin Albares
Munro Ferencz
Mayumi Kolmetz
Cody Saylors
Stacey Maclead
Murillo Malet
Mayumi Kolmetz
Adams Morasca
Mujtaba Nicka
Izzy Garufi
Maria Marrier
Morrow Ruta
Salvatore Stockham
Darci Poquette
Morrow Ruta
Jennifer Amigon
Alejandro Perin
Mujtaba Nicka
Misaki Royster
Mujtaba Nicka
James Butt
Darci Poquette
Maria Marrier
Izzy Garufi
Clifford Rim
Tony Foller
Jennifer Amigon
Cody Saylors
Jefferson Schemmer
David Darakjy
Isabel Bowley
Morrow Ruta
David Darakjy
Leja Caldarera
Aruna Figeroa
Emily Whobrey
Ricardo Gaucho
Francesco Shinko
Aruna Figeroa
Misaki Royster
Leon Oldroyd
Nicolas Iturbide
Jefferson Schemmer
Rodrigues Campain
Leon Oldroyd
Cody Saylors
IdCountryDate
1000Brazil2025-09-25
1001India2025-09-26
1002Brazil2025-09-17
1003Japan2025-09-23
1004Australia2025-10-12
1005Argentina2025-09-27
1006Canada2025-09-16
1007United Kingdom2025-10-11
1008Australia2025-09-20
1009India2025-10-10
1010Russia2025-10-06
1011Spain2025-10-08
1012Italy2025-09-28
1013France2025-10-04
1014Japan2025-09-15
1015United Kingdom2025-10-09
1016Italy2025-09-18
1017Germany2025-10-02
1018Australia2025-10-02
1019Brazil2025-09-21
1020France2025-10-01
1021Canada2025-10-06
1022Spain2025-09-28
1023Germany2025-09-28
1024France2025-10-02
1025Japan2025-09-16
1026United Kingdom2025-09-24
1027United Kingdom2025-09-20
1028Brazil2025-10-07
1029Germany2025-10-05
1030Spain2025-10-08
1031Germany2025-10-02
1032Russia2025-10-03
1033Japan2025-09-15
1034France2025-09-24
1035Argentina2025-10-11
1036Brazil2025-09-23
1037Spain2025-09-19
1038Brazil2025-10-12
1039Argentina2025-09-18
1040United Kingdom2025-09-23
1041Russia2025-10-12
1042India2025-09-14
1043United Kingdom2025-10-03
1044Japan2025-09-20
1045Australia2025-09-28
1046India2025-10-08
1047Canada2025-10-10
1048Australia2025-09-26
1049Argentina2025-09-14

On-Demand Data

NameIdCountryDate
Kadeem Flosi1000Germany2025-09-18
Octavia Malet1001Japan2025-10-08
Isabel Bowley1002Canada2025-10-03
Misaki Royster1003Spain2025-09-29
Munro Ferencz1004United Kingdom2025-10-11
Ricardo Gaucho1005Australia2025-10-12
Sinclair Waycott1006Australia2025-09-14
Francesco Shinko1007Argentina2025-09-22
Emily Whobrey1008Japan2025-10-12
Maria Marrier1009United Kingdom2025-09-24
Ricardo Gaucho1010Argentina2025-09-18
Misaki Royster1011Argentina2025-09-25
David Darakjy1012Spain2025-09-13
Aika Inouye1013Spain2025-09-15
Faith Gillian1014Australia2025-10-09
Nicolas Iturbide1015Canada2025-09-29
Maisha Rulapaugh1016Brazil2025-09-20
Jeanfrancois Venere1017Spain2025-09-20
Francesco Shinko1018France2025-09-23
Julie Stenseth1019Australia2025-09-15
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Maisha RulapaughCanadaIoni Bowcher PROPOSAL
Tony FollerAustraliaAnna Fali NEGOTIATION
Aruna FigeroaUnited KingdomAnna Fali UNQUALIFIED
Salvatore StockhamCanadaOnyama Limba UNQUALIFIED
Francesco ShinkoItalyIvan Magalhaes PROPOSAL
Maria MarrierFranceAsiya Javayant NEGOTIATION
Jefferson SchemmerUnited KingdomElwin Sharvill PROPOSAL
Francesco ShinkoJapanAmy Elsner PROPOSAL
Arvin AlbaresJapanXuxue Feng UNQUALIFIED
Kaitlin OstroskyRussiaXuxue Feng NEGOTIATION
David DarakjyJapanAmy Elsner UNQUALIFIED
Smith GlickGermanyStephen Shaw UNQUALIFIED
Wickens NestleJapanXuxue Feng UNQUALIFIED
Mayumi KolmetzSpainAsiya Javayant PROPOSAL
Wickens NestleGermanyIoni Bowcher PROPOSAL
Julie StensethAustraliaElwin Sharvill UNQUALIFIED
Adams MorascaGermanyAnna Fali QUALIFIED
Claire TollnerIndiaAsiya Javayant PROPOSAL
Greenwood BologniaCanadaElwin Sharvill UNQUALIFIED
Maisha RulapaughIndiaAmy Elsner NEW
Jefferson SchemmerItalyElwin Sharvill NEW
Claire TollnerRussiaIvan Magalhaes NEGOTIATION
Ashley DoeItalyAsiya Javayant QUALIFIED
Morrow RutaItalyAmy Elsner RENEWAL
Adams MorascaBrazilAnna Fali NEGOTIATION
Ricardo GauchoArgentinaAsiya Javayant PROPOSAL
Sinclair WaycottArgentinaElwin Sharvill RENEWAL
Mujtaba NickaRussiaAnna Fali NEGOTIATION
Faith GillianFranceBernardo Dominic RENEWAL
Isabel BowleyJapanOnyama Limba NEGOTIATION
Octavia MaletRussiaElwin Sharvill RENEWAL
Cody SaylorsItalyIoni Bowcher QUALIFIED
Greenwood BologniaRussiaAsiya Javayant QUALIFIED
Smith GlickGermanyBernardo Dominic QUALIFIED
Misaki RoysterGermanyBernardo Dominic RENEWAL
Kaitlin OstroskyItalyStephen Shaw NEGOTIATION
Chavez BriddickBrazilBernardo Dominic NEW
Deepesh ChuiJapanBernardo Dominic NEW
Chavez BriddickFranceStephen Shaw NEW
Cody SaylorsJapanStephen Shaw NEW

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