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
Mayumi KolmetzArgentinaXuxue Feng NEGOTIATION
Jefferson SchemmerItalyStephen Shaw PROPOSAL
Salvatore StockhamUnited KingdomIvan Magalhaes NEW
Costa DilliardRussiaStephen Shaw QUALIFIED
Kadeem FlosiFranceBernardo Dominic NEW
Tony FollerIndiaIoni Bowcher NEGOTIATION
Maisha RulapaughCanadaBernardo Dominic NEW
Julie StensethFranceStephen Shaw QUALIFIED
Leja CaldareraFranceAsiya Javayant UNQUALIFIED
Costa DilliardArgentinaOnyama Limba NEGOTIATION
Nicolas IturbideGermanyAnna Fali UNQUALIFIED
Jones VocelkaIndiaIvan Magalhaes PROPOSAL
Wickens NestleItalyStephen Shaw PROPOSAL
Tony FollerAustraliaAsiya Javayant NEW
Aditya KuskoRussiaIvan Magalhaes RENEWAL
Tony FollerAustraliaIvan Magalhaes QUALIFIED
Francesco ShinkoBrazilStephen Shaw UNQUALIFIED
Darci PoquetteIndiaStephen Shaw PROPOSAL
Aika InouyeIndiaIoni Bowcher NEGOTIATION
Ashley DoeIndiaElwin Sharvill NEW
Costa DilliardIndiaElwin Sharvill NEGOTIATION
Rodrigues CampainGermanyOnyama Limba RENEWAL
Francesco ShinkoFranceStephen Shaw PROPOSAL
Murillo MaletSpainAmy Elsner UNQUALIFIED
Costa DilliardJapanIvan Magalhaes QUALIFIED
Aika InouyeCanadaBernardo Dominic PROPOSAL
Jones VocelkaJapanXuxue Feng RENEWAL
Jones VocelkaIndiaAsiya Javayant NEW
Kadeem FlosiIndiaIoni Bowcher PROPOSAL
Jefferson SchemmerRussiaAmy Elsner UNQUALIFIED
Emily WhobreyIndiaAnna Fali RENEWAL
Jennifer AmigonSpainIvan Magalhaes NEGOTIATION
Sinclair WaycottIndiaElwin Sharvill PROPOSAL
Deepesh ChuiGermanyAsiya Javayant PROPOSAL
Alejandro PerinCanadaAnna Fali NEW
Leon OldroydIndiaIoni Bowcher NEW
Adams MorascaJapanIvan Magalhaes QUALIFIED
Aika InouyeAustraliaXuxue Feng RENEWAL
Nicolas IturbideJapanElwin Sharvill UNQUALIFIED
Rodrigues CampainUnited KingdomXuxue Feng QUALIFIED
David DarakjyBrazilElwin Sharvill UNQUALIFIED
Costa DilliardArgentinaElwin Sharvill NEW
Jones VocelkaCanadaOnyama Limba NEGOTIATION
Stacey MacleadBrazilElwin Sharvill PROPOSAL
Octavia MaletIndiaIoni Bowcher NEGOTIATION
Stacey MacleadRussiaStephen Shaw NEGOTIATION
Julie StensethArgentinaAnna Fali RENEWAL
Munro FerenczArgentinaStephen Shaw UNQUALIFIED
Emily WhobreyBrazilIvan Magalhaes UNQUALIFIED
Clifford RimArgentinaAnna Fali QUALIFIED
Horizontal
NameCountryRepresentativeStatus
Alejandro PerinFranceOnyama Limba RENEWAL
Kaitlin OstroskyIndiaIvan Magalhaes NEW
Adams MorascaItalyElwin Sharvill PROPOSAL
Octavia MaletArgentinaAmy Elsner PROPOSAL
Costa DilliardRussiaIoni Bowcher NEW
Maisha RulapaughAustraliaIvan Magalhaes PROPOSAL
Stacey MacleadRussiaStephen Shaw UNQUALIFIED
Jones VocelkaArgentinaIvan Magalhaes QUALIFIED
Chavez BriddickArgentinaAnna Fali UNQUALIFIED
Juan WieserBrazilStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Munro FerenczUnited Kingdom2026-04-24Printing Dimensions RENEWAL86Stephen Shaw
1001Leja CaldareraJapan2026-04-04Commercial Press UNQUALIFIED15Asiya Javayant
1002Alejandro PerinRussia2026-04-28Truhlar And Truhlar Attys PROPOSAL17Anna Fali
1003Mayumi KolmetzSpain2026-04-20Buckley Miller Wright NEW33Bernardo Dominic
1004Murillo MaletSpain2026-04-24Chanay, Jeffrey A Esq NEW72Stephen Shaw
1005Aika InouyeItaly2026-04-19Feltz Printing Service PROPOSAL71Anna Fali
1006Clifford RimAustralia2026-04-19Chapman, Ross E Esq QUALIFIED33Ioni Bowcher
1007Octavia MaletBrazil2026-04-12Truhlar And Truhlar Attys NEGOTIATION89Elwin Sharvill
1008Leon OldroydSpain2026-04-08King, Christopher A Esq PROPOSAL24Elwin Sharvill
1009Deepesh ChuiGermany2026-04-13Rousseaux, Michael Esq PROPOSAL66Elwin Sharvill
1010Greenwood BologniaRussia2026-05-01Feltz Printing Service QUALIFIED62Asiya Javayant
1011Alejandro PerinSpain2026-04-27Buckley Miller Wright PROPOSAL93Amy Elsner
1012James ButtGermany2026-04-09Printing Dimensions RENEWAL45Stephen Shaw
1013James ButtSpain2026-04-29King, Christopher A Esq UNQUALIFIED17Onyama Limba
1014Leja CaldareraUnited Kingdom2026-04-18Rousseaux, Michael Esq NEW87Amy Elsner
1015Cody SaylorsAustralia2026-04-14Truhlar And Truhlar Attys QUALIFIED11Xuxue Feng
1016Misaki RoysterAustralia2026-04-09Truhlar And Truhlar Attys UNQUALIFIED34Stephen Shaw
1017Arvin AlbaresGermany2026-04-13Chanay, Jeffrey A Esq NEW9Ioni Bowcher
1018Kaitlin OstroskyAustralia2026-04-18Benton, John B Jr RENEWAL68Asiya Javayant
1019Clifford RimAustralia2026-04-23Rousseaux, Michael Esq NEW5Elwin Sharvill
1020Ashley DoeIndia2026-04-23Chanay, Jeffrey A Esq QUALIFIED87Stephen Shaw
1021Mujtaba NickaGermany2026-04-27Printing Dimensions QUALIFIED43Anna Fali
1022Izzy GarufiRussia2026-04-16Benton, John B Jr QUALIFIED80Onyama Limba
1023Alejandro PerinSpain2026-04-09King, Christopher A Esq NEW51Amy Elsner
1024Morrow RutaAustralia2026-04-05Dorl, James J Esq QUALIFIED87Elwin Sharvill
1025Kadeem FlosiRussia2026-04-06Chanay, Jeffrey A Esq PROPOSAL92Stephen Shaw
1026Maisha RulapaughAustralia2026-04-07King, Christopher A Esq NEGOTIATION3Bernardo Dominic
1027Nicolas IturbideArgentina2026-04-23Rangoni Of Florence UNQUALIFIED22Xuxue Feng
1028Julie StensethItaly2026-04-23Dorl, James J Esq UNQUALIFIED93Anna Fali
1029Antonio CaudyItaly2026-04-29Chapman, Ross E Esq NEGOTIATION30Onyama Limba
1030Silvio SlusarskiItaly2026-04-09Dorl, James J Esq NEW82Ioni Bowcher
1031Claire TollnerSpain2026-04-12Rangoni Of Florence RENEWAL3Bernardo Dominic
1032Rodrigues CampainArgentina2026-04-14Buckley Miller Wright PROPOSAL50Ivan Magalhaes
1033Munro FerenczUnited Kingdom2026-04-09Chanay, Jeffrey A Esq NEGOTIATION63Elwin Sharvill
1034Antonio CaudyCanada2026-04-16Feltz Printing Service UNQUALIFIED52Stephen Shaw
1035Stacey MacleadIndia2026-04-17Buckley Miller Wright PROPOSAL27Amy Elsner
1036Smith GlickIndia2026-04-04Rangoni Of Florence NEW25Asiya Javayant
1037Aruna FigeroaArgentina2026-04-07Printing Dimensions NEW26Ivan Magalhaes
1038Cody SaylorsIndia2026-04-08Buckley Miller Wright NEGOTIATION31Xuxue Feng
1039Maria MarrierRussia2026-04-26Buckley Miller Wright UNQUALIFIED54Ioni Bowcher
1040Aditya KuskoGermany2026-04-25Printing Dimensions NEGOTIATION39Anna Fali
1041Munro FerenczRussia2026-04-21Dorl, James J Esq NEW83Ivan Magalhaes
1042Claire TollnerRussia2026-04-02Feiner Bros QUALIFIED25Bernardo Dominic
1043Leon OldroydItaly2026-04-03Printing Dimensions NEGOTIATION16Xuxue Feng
1044Maisha RulapaughArgentina2026-04-27Rangoni Of Florence NEW86Amy Elsner
1045Aika InouyeAustralia2026-04-13Rangoni Of Florence PROPOSAL30Bernardo Dominic
1046Chavez BriddickItaly2026-04-15Morlong Associates PROPOSAL60Amy Elsner
1047Costa DilliardItaly2026-04-03Chanay, Jeffrey A Esq NEGOTIATION77Elwin Sharvill
1048Smith GlickRussia2026-04-20Rousseaux, Michael Esq RENEWAL68Onyama Limba
1049Faith GillianJapan2026-04-19Buckley Miller Wright PROPOSAL48Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Munro FerenczBrazilXuxue Feng QUALIFIED
Faith GillianSpainIoni Bowcher UNQUALIFIED
Isabel BowleyGermanyOnyama Limba PROPOSAL
James ButtSpainOnyama Limba QUALIFIED
Ashley DoeJapanElwin Sharvill PROPOSAL
Octavia MaletGermanyElwin Sharvill UNQUALIFIED
Chavez BriddickItalyOnyama Limba QUALIFIED
Silvio SlusarskiJapanAnna Fali RENEWAL
Clifford RimRussiaBernardo Dominic NEW
Johnson SergiGermanyElwin Sharvill RENEWAL
Aruna FigeroaArgentinaIoni Bowcher UNQUALIFIED
Kaitlin OstroskyUnited KingdomAnna Fali RENEWAL
Johnson SergiCanadaAnna Fali RENEWAL
Isabel BowleyBrazilBernardo Dominic QUALIFIED
Maria MarrierBrazilElwin Sharvill UNQUALIFIED
Maria MarrierJapanBernardo Dominic RENEWAL
Adams MorascaCanadaStephen Shaw NEGOTIATION
Tony FollerJapanAmy Elsner PROPOSAL
Kadeem FlosiGermanyAmy Elsner NEW
Silvio SlusarskiCanadaAmy Elsner QUALIFIED
Kadeem FlosiArgentinaBernardo Dominic QUALIFIED
Nicolas IturbideBrazilStephen Shaw PROPOSAL
Silvio SlusarskiSpainAmy Elsner UNQUALIFIED
Isabel BowleyArgentinaStephen Shaw PROPOSAL
Emily WhobreyJapanIoni Bowcher QUALIFIED
Maisha RulapaughBrazilIvan Magalhaes QUALIFIED
Maria MarrierSpainIoni Bowcher QUALIFIED
Adams MorascaCanadaElwin Sharvill NEGOTIATION
Aika InouyeRussiaOnyama Limba QUALIFIED
Chavez BriddickBrazilAmy Elsner UNQUALIFIED
Deepesh ChuiRussiaBernardo Dominic NEGOTIATION
Ivar PaprockiItalyXuxue Feng UNQUALIFIED
Maisha RulapaughSpainAsiya Javayant NEW
Chavez BriddickItalyAsiya Javayant NEW
Faith GillianJapanStephen Shaw QUALIFIED
Munro FerenczUnited KingdomAmy Elsner PROPOSAL
Arvin AlbaresAustraliaAnna Fali UNQUALIFIED
Murillo MaletRussiaElwin Sharvill NEGOTIATION
Cody SaylorsGermanyIoni Bowcher RENEWAL
Claire TollnerCanadaAnna Fali NEGOTIATION
Izzy GarufiBrazilStephen Shaw NEGOTIATION
Aika InouyeCanadaAmy Elsner RENEWAL
Jennifer AmigonJapanStephen Shaw RENEWAL
Jennifer AmigonArgentinaElwin Sharvill RENEWAL
Jefferson SchemmerJapanAsiya Javayant UNQUALIFIED
Darci PoquetteJapanElwin Sharvill UNQUALIFIED
Arvin AlbaresItalyElwin Sharvill NEGOTIATION
Wickens NestleGermanyBernardo Dominic RENEWAL
Munro FerenczItalyAmy Elsner RENEWAL
Silvio SlusarskiIndiaAmy Elsner RENEWAL
Frozen Columns
Name
Aruna Figeroa
Murillo Malet
Isabel Bowley
Jones Vocelka
Greenwood Bolognia
Salvatore Stockham
Emily Whobrey
Cody Saylors
Jennifer Amigon
Juan Wieser
Silvio Slusarski
Francesco Shinko
Isabel Bowley
Morrow Ruta
Silvio Slusarski
Ashley Doe
Silvio Slusarski
Ricardo Gaucho
Sinclair Waycott
Ricardo Gaucho
David Darakjy
Julie Stenseth
Chavez Briddick
Francesco Shinko
Morrow Ruta
Deepesh Chui
Stacey Maclead
Jefferson Schemmer
Jefferson Schemmer
Ivar Paprocki
Leon Oldroyd
Leon Oldroyd
Arvin Albares
Morrow Ruta
Jeanfrancois Venere
Salvatore Stockham
Antonio Caudy
Cody Saylors
Jeanfrancois Venere
Smith Glick
Claire Tollner
Jones Vocelka
Jefferson Schemmer
Wickens Nestle
Misaki Royster
Clifford Rim
Emily Whobrey
Arvin Albares
Maria Marrier
Antonio Caudy
IdCountryDate
1000Germany2026-04-27
1001Canada2026-04-28
1002France2026-04-04
1003Germany2026-04-08
1004United Kingdom2026-05-01
1005France2026-04-07
1006Australia2026-04-25
1007Japan2026-04-14
1008Australia2026-04-14
1009Russia2026-04-13
1010Italy2026-04-07
1011Spain2026-04-13
1012Germany2026-04-10
1013Russia2026-04-04
1014Spain2026-04-07
1015France2026-04-17
1016France2026-04-21
1017Argentina2026-04-13
1018France2026-04-29
1019Japan2026-04-09
1020United Kingdom2026-04-28
1021Spain2026-04-17
1022Japan2026-04-20
1023Italy2026-04-11
1024Argentina2026-04-02
1025India2026-04-19
1026Australia2026-04-20
1027Canada2026-04-07
1028Canada2026-04-05
1029Italy2026-04-11
1030Germany2026-04-21
1031Canada2026-04-03
1032Germany2026-04-05
1033Spain2026-04-20
1034Australia2026-04-10
1035United Kingdom2026-04-24
1036France2026-04-18
1037United Kingdom2026-04-23
1038India2026-04-07
1039Brazil2026-05-01
1040Brazil2026-04-08
1041Spain2026-04-07
1042Brazil2026-04-22
1043Russia2026-04-14
1044Argentina2026-04-17
1045United Kingdom2026-04-03
1046Japan2026-04-06
1047Italy2026-04-26
1048Russia2026-04-06
1049Italy2026-04-11

On-Demand Data

NameIdCountryDate
Darci Poquette1000India2026-04-27
Ricardo Gaucho1001Argentina2026-04-05
Mujtaba Nicka1002Australia2026-04-17
Smith Glick1003Japan2026-04-27
Alejandro Perin1004United Kingdom2026-04-16
Jefferson Schemmer1005Russia2026-04-08
Smith Glick1006United Kingdom2026-04-10
Munro Ferencz1007India2026-04-22
Deepesh Chui1008Russia2026-04-13
Tony Foller1009Argentina2026-04-09
Sinclair Waycott1010United Kingdom2026-04-23
Leon Oldroyd1011Italy2026-04-20
Nicolas Iturbide1012Germany2026-04-23
Smith Glick1013Australia2026-04-27
Aditya Kusko1014Russia2026-04-08
Kaitlin Ostrosky1015Italy2026-04-22
Murillo Malet1016Germany2026-04-27
Aika Inouye1017Japan2026-04-23
Rodrigues Campain1018Brazil2026-04-30
Kadeem Flosi1019Japan2026-04-17
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony FollerFranceXuxue Feng NEGOTIATION
Misaki RoysterBrazilAsiya Javayant QUALIFIED
Rodrigues CampainUnited KingdomElwin Sharvill NEGOTIATION
Chavez BriddickBrazilAnna Fali NEW
Misaki RoysterUnited KingdomElwin Sharvill RENEWAL
Maisha RulapaughBrazilXuxue Feng NEGOTIATION
Johnson SergiFranceElwin Sharvill PROPOSAL
Deepesh ChuiAustraliaStephen Shaw NEGOTIATION
Deepesh ChuiJapanOnyama Limba RENEWAL
Kaitlin OstroskyUnited KingdomStephen Shaw NEW
Murillo MaletCanadaXuxue Feng NEGOTIATION
Julie StensethAustraliaIoni Bowcher RENEWAL
Morrow RutaCanadaOnyama Limba PROPOSAL
Francesco ShinkoFranceXuxue Feng NEW
Tony FollerAustraliaIvan Magalhaes RENEWAL
Adams MorascaFranceStephen Shaw QUALIFIED
Morrow RutaJapanAnna Fali PROPOSAL
Isabel BowleyJapanOnyama Limba NEGOTIATION
Sinclair WaycottGermanyAsiya Javayant UNQUALIFIED
Jeanfrancois VenereBrazilAsiya Javayant QUALIFIED
Adams MorascaBrazilAsiya Javayant NEGOTIATION
Faith GillianBrazilStephen Shaw RENEWAL
James ButtRussiaOnyama Limba RENEWAL
Mayumi KolmetzArgentinaOnyama Limba UNQUALIFIED
Aika InouyeJapanAmy Elsner NEGOTIATION
Johnson SergiIndiaAmy Elsner NEW
Kaitlin OstroskyGermanyIvan Magalhaes PROPOSAL
Leja CaldareraCanadaElwin Sharvill NEGOTIATION
Cody SaylorsIndiaOnyama Limba QUALIFIED
Ricardo GauchoItalyIvan Magalhaes NEW
Mayumi KolmetzArgentinaIoni Bowcher PROPOSAL
Aruna FigeroaAustraliaBernardo Dominic PROPOSAL
Leon OldroydJapanStephen Shaw QUALIFIED
Salvatore StockhamFranceIoni Bowcher QUALIFIED
Kaitlin OstroskyBrazilStephen Shaw QUALIFIED
Alejandro PerinJapanAsiya Javayant UNQUALIFIED
Munro FerenczArgentinaOnyama Limba PROPOSAL
Salvatore StockhamArgentinaIoni Bowcher RENEWAL
Clifford RimArgentinaAnna Fali QUALIFIED
Izzy GarufiCanadaXuxue Feng NEGOTIATION

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