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
Aika InouyeRussiaStephen Shaw UNQUALIFIED
Silvio SlusarskiBrazilAsiya Javayant PROPOSAL
Greenwood BologniaGermanyAnna Fali NEW
Darci PoquetteRussiaXuxue Feng NEW
Murillo MaletFranceOnyama Limba PROPOSAL
Ashley DoeSpainOnyama Limba RENEWAL
Cody SaylorsIndiaIoni Bowcher QUALIFIED
Murillo MaletArgentinaAsiya Javayant UNQUALIFIED
Arvin AlbaresJapanElwin Sharvill QUALIFIED
Tony FollerUnited KingdomStephen Shaw QUALIFIED
Leon OldroydCanadaElwin Sharvill QUALIFIED
Munro FerenczAustraliaAsiya Javayant NEGOTIATION
Alejandro PerinBrazilStephen Shaw QUALIFIED
Jones VocelkaGermanyStephen Shaw RENEWAL
Cody SaylorsAustraliaElwin Sharvill PROPOSAL
Murillo MaletGermanyAnna Fali RENEWAL
Aika InouyeRussiaIvan Magalhaes PROPOSAL
Isabel BowleyUnited KingdomAsiya Javayant NEW
Francesco ShinkoUnited KingdomBernardo Dominic PROPOSAL
Leja CaldareraCanadaAsiya Javayant QUALIFIED
Stacey MacleadSpainAnna Fali NEGOTIATION
Jennifer AmigonRussiaBernardo Dominic NEW
Aika InouyeAustraliaElwin Sharvill NEW
Adams MorascaGermanyOnyama Limba RENEWAL
Antonio CaudyJapanIvan Magalhaes UNQUALIFIED
Leja CaldareraBrazilIoni Bowcher UNQUALIFIED
Kadeem FlosiItalyXuxue Feng RENEWAL
Claire TollnerIndiaXuxue Feng NEW
Costa DilliardGermanyElwin Sharvill UNQUALIFIED
Jeanfrancois VenereItalyAsiya Javayant RENEWAL
Wickens NestleCanadaIvan Magalhaes QUALIFIED
Ashley DoeBrazilAmy Elsner UNQUALIFIED
Julie StensethSpainBernardo Dominic QUALIFIED
Mujtaba NickaBrazilAsiya Javayant RENEWAL
Alejandro PerinFranceBernardo Dominic QUALIFIED
Isabel BowleyItalyStephen Shaw RENEWAL
Julie StensethItalyXuxue Feng NEW
Stacey MacleadSpainIoni Bowcher NEGOTIATION
Misaki RoysterJapanIoni Bowcher NEGOTIATION
Johnson SergiIndiaAnna Fali RENEWAL
Mayumi KolmetzGermanyAnna Fali RENEWAL
Sinclair WaycottGermanyAsiya Javayant QUALIFIED
Mujtaba NickaCanadaIvan Magalhaes NEGOTIATION
Johnson SergiUnited KingdomAnna Fali UNQUALIFIED
Darci PoquetteRussiaElwin Sharvill PROPOSAL
Darci PoquetteGermanyStephen Shaw PROPOSAL
Ashley DoeCanadaBernardo Dominic NEGOTIATION
Faith GillianGermanyOnyama Limba QUALIFIED
Ashley DoeCanadaBernardo Dominic UNQUALIFIED
Stacey MacleadBrazilIoni Bowcher NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Misaki RoysterIndiaBernardo Dominic NEGOTIATION
Ashley DoeIndiaIoni Bowcher QUALIFIED
Maisha RulapaughIndiaBernardo Dominic RENEWAL
Munro FerenczUnited KingdomIvan Magalhaes NEW
Izzy GarufiIndiaAnna Fali UNQUALIFIED
Nicolas IturbideArgentinaStephen Shaw NEW
Kaitlin OstroskyUnited KingdomOnyama Limba QUALIFIED
Misaki RoysterFranceXuxue Feng NEW
Tony FollerGermanyElwin Sharvill RENEWAL
Jefferson SchemmerBrazilOnyama Limba NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maisha RulapaughAustralia2026-05-02King, Christopher A Esq QUALIFIED77Asiya Javayant
1001Ivar PaprockiSpain2026-04-27Buckley Miller Wright NEGOTIATION75Ivan Magalhaes
1002Jeanfrancois VenereBrazil2026-05-04Morlong Associates NEW7Onyama Limba
1003Izzy GarufiSpain2026-05-07Buckley Miller Wright QUALIFIED16Onyama Limba
1004Ricardo GauchoRussia2026-04-16Chapman, Ross E Esq NEGOTIATION69Ioni Bowcher
1005Jefferson SchemmerCanada2026-04-19Printing Dimensions RENEWAL12Xuxue Feng
1006Maisha RulapaughUnited Kingdom2026-04-14Feltz Printing Service RENEWAL43Xuxue Feng
1007Antonio CaudyUnited Kingdom2026-04-17Chanay, Jeffrey A Esq RENEWAL75Asiya Javayant
1008Octavia MaletIndia2026-05-01King, Christopher A Esq NEGOTIATION32Ivan Magalhaes
1009Darci PoquetteSpain2026-04-21Dorl, James J Esq NEGOTIATION23Ioni Bowcher
1010Greenwood BologniaItaly2026-04-18Benton, John B Jr QUALIFIED40Ioni Bowcher
1011Jeanfrancois VenereJapan2026-04-24Commercial Press PROPOSAL32Xuxue Feng
1012Stacey MacleadCanada2026-04-30Rangoni Of Florence UNQUALIFIED51Asiya Javayant
1013Leja CaldareraFrance2026-05-12Commercial Press NEW30Amy Elsner
1014Sinclair WaycottSpain2026-05-12King, Christopher A Esq RENEWAL41Amy Elsner
1015Maria MarrierGermany2026-05-08Feiner Bros NEW32Ivan Magalhaes
1016Antonio CaudySpain2026-04-29Printing Dimensions NEGOTIATION49Ioni Bowcher
1017Izzy GarufiUnited Kingdom2026-04-17Feiner Bros UNQUALIFIED46Ivan Magalhaes
1018Mujtaba NickaAustralia2026-05-08Feltz Printing Service QUALIFIED24Amy Elsner
1019Murillo MaletBrazil2026-04-29Commercial Press UNQUALIFIED30Anna Fali
1020Kadeem FlosiAustralia2026-04-15Dorl, James J Esq UNQUALIFIED57Xuxue Feng
1021Silvio SlusarskiSpain2026-05-03Benton, John B Jr NEW72Asiya Javayant
1022Leja CaldareraItaly2026-05-10Truhlar And Truhlar Attys NEGOTIATION15Amy Elsner
1023Faith GillianGermany2026-05-11King, Christopher A Esq NEW35Ivan Magalhaes
1024Francesco ShinkoJapan2026-05-08Dorl, James J Esq NEGOTIATION69Xuxue Feng
1025Jennifer AmigonGermany2026-04-23Feltz Printing Service PROPOSAL24Anna Fali
1026Costa DilliardArgentina2026-04-15Buckley Miller Wright RENEWAL46Elwin Sharvill
1027Clifford RimUnited Kingdom2026-04-16Buckley Miller Wright UNQUALIFIED31Elwin Sharvill
1028Munro FerenczJapan2026-05-06Truhlar And Truhlar Attys RENEWAL38Asiya Javayant
1029James ButtAustralia2026-04-16Rousseaux, Michael Esq RENEWAL66Elwin Sharvill
1030Kadeem FlosiAustralia2026-04-25Chapman, Ross E Esq UNQUALIFIED81Bernardo Dominic
1031Juan WieserJapan2026-04-21Feltz Printing Service UNQUALIFIED11Xuxue Feng
1032Claire TollnerGermany2026-04-23King, Christopher A Esq UNQUALIFIED4Stephen Shaw
1033Arvin AlbaresBrazil2026-04-29Feltz Printing Service NEW58Onyama Limba
1034Ashley DoeArgentina2026-04-28Dorl, James J Esq QUALIFIED7Anna Fali
1035Jefferson SchemmerGermany2026-05-11Morlong Associates NEGOTIATION89Bernardo Dominic
1036Ashley DoeBrazil2026-05-02Benton, John B Jr RENEWAL52Ivan Magalhaes
1037Johnson SergiItaly2026-04-23Printing Dimensions QUALIFIED32Bernardo Dominic
1038Chavez BriddickFrance2026-04-22Feiner Bros UNQUALIFIED32Ivan Magalhaes
1039Kaitlin OstroskyCanada2026-04-16Dorl, James J Esq UNQUALIFIED93Onyama Limba
1040Wickens NestleJapan2026-04-27Printing Dimensions NEGOTIATION26Bernardo Dominic
1041Cody SaylorsSpain2026-05-11Truhlar And Truhlar Attys RENEWAL15Asiya Javayant
1042Rodrigues CampainCanada2026-04-15Buckley Miller Wright PROPOSAL28Asiya Javayant
1043Octavia MaletArgentina2026-04-21Dorl, James J Esq RENEWAL93Anna Fali
1044Tony FollerItaly2026-04-28Morlong Associates QUALIFIED45Elwin Sharvill
1045Leon OldroydBrazil2026-05-11Commercial Press QUALIFIED59Stephen Shaw
1046Claire TollnerBrazil2026-05-12Rangoni Of Florence NEGOTIATION48Ioni Bowcher
1047Smith GlickIndia2026-05-07Commercial Press NEGOTIATION21Asiya Javayant
1048Francesco ShinkoRussia2026-05-03Printing Dimensions UNQUALIFIED4Ioni Bowcher
1049Emily WhobreyIndia2026-04-18Buckley Miller Wright NEW12Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
James ButtIndiaAnna Fali NEGOTIATION
Alejandro PerinRussiaIvan Magalhaes NEGOTIATION
Rodrigues CampainJapanIvan Magalhaes QUALIFIED
Chavez BriddickBrazilOnyama Limba PROPOSAL
Kaitlin OstroskySpainAsiya Javayant RENEWAL
Adams MorascaArgentinaStephen Shaw QUALIFIED
Aditya KuskoJapanAmy Elsner NEW
Chavez BriddickBrazilAsiya Javayant UNQUALIFIED
Faith GillianGermanyAnna Fali PROPOSAL
Ashley DoeRussiaIvan Magalhaes PROPOSAL
Faith GillianBrazilElwin Sharvill UNQUALIFIED
Aruna FigeroaJapanOnyama Limba RENEWAL
Johnson SergiGermanyIvan Magalhaes UNQUALIFIED
Nicolas IturbideRussiaAmy Elsner PROPOSAL
Cody SaylorsSpainIoni Bowcher UNQUALIFIED
Maisha RulapaughJapanIoni Bowcher UNQUALIFIED
Alejandro PerinArgentinaAmy Elsner NEW
Deepesh ChuiBrazilElwin Sharvill RENEWAL
Silvio SlusarskiJapanStephen Shaw UNQUALIFIED
Mayumi KolmetzUnited KingdomBernardo Dominic NEGOTIATION
Stacey MacleadAustraliaOnyama Limba QUALIFIED
Izzy GarufiItalyIoni Bowcher UNQUALIFIED
Jones VocelkaGermanyElwin Sharvill RENEWAL
Aruna FigeroaIndiaBernardo Dominic NEGOTIATION
Munro FerenczCanadaAnna Fali UNQUALIFIED
Mujtaba NickaBrazilIoni Bowcher NEW
Costa DilliardGermanyStephen Shaw NEGOTIATION
Costa DilliardFranceIvan Magalhaes NEGOTIATION
Tony FollerBrazilBernardo Dominic NEGOTIATION
Jeanfrancois VenereRussiaBernardo Dominic QUALIFIED
James ButtArgentinaElwin Sharvill PROPOSAL
Aika InouyeBrazilAmy Elsner NEGOTIATION
Aruna FigeroaBrazilElwin Sharvill PROPOSAL
Jennifer AmigonBrazilAnna Fali QUALIFIED
Jefferson SchemmerSpainOnyama Limba RENEWAL
Nicolas IturbideSpainStephen Shaw NEGOTIATION
Jones VocelkaUnited KingdomBernardo Dominic NEGOTIATION
Isabel BowleyIndiaIvan Magalhaes RENEWAL
Mujtaba NickaFranceAnna Fali PROPOSAL
Aika InouyeUnited KingdomAnna Fali RENEWAL
Misaki RoysterBrazilAsiya Javayant UNQUALIFIED
Smith GlickArgentinaOnyama Limba NEW
Jefferson SchemmerBrazilElwin Sharvill RENEWAL
Octavia MaletSpainAsiya Javayant RENEWAL
Claire TollnerArgentinaOnyama Limba QUALIFIED
Antonio CaudyArgentinaXuxue Feng NEGOTIATION
Darci PoquetteArgentinaStephen Shaw NEGOTIATION
Stacey MacleadBrazilStephen Shaw NEGOTIATION
Ricardo GauchoFranceAnna Fali NEW
Alejandro PerinUnited KingdomAnna Fali NEW
Frozen Columns
Name
James Butt
Sinclair Waycott
Izzy Garufi
Francesco Shinko
Isabel Bowley
Juan Wieser
Maria Marrier
Jefferson Schemmer
Morrow Ruta
Leon Oldroyd
Francesco Shinko
Deepesh Chui
Kaitlin Ostrosky
Clifford Rim
Cody Saylors
Costa Dilliard
Antonio Caudy
Ashley Doe
Octavia Malet
Kaitlin Ostrosky
Maisha Rulapaugh
Juan Wieser
Chavez Briddick
Jones Vocelka
Kaitlin Ostrosky
Maria Marrier
Nicolas Iturbide
Maria Marrier
Jennifer Amigon
Deepesh Chui
Munro Ferencz
James Butt
Emily Whobrey
Stacey Maclead
Ivar Paprocki
Jennifer Amigon
Leja Caldarera
Aika Inouye
Juan Wieser
Aika Inouye
Jones Vocelka
Ashley Doe
Wickens Nestle
Antonio Caudy
Greenwood Bolognia
David Darakjy
Murillo Malet
Jefferson Schemmer
Wickens Nestle
Emily Whobrey
IdCountryDate
1000France2026-04-22
1001Brazil2026-04-26
1002Italy2026-05-13
1003United Kingdom2026-05-11
1004Australia2026-05-04
1005India2026-04-21
1006Brazil2026-05-10
1007United Kingdom2026-04-16
1008Canada2026-04-25
1009Russia2026-05-10
1010Spain2026-04-20
1011Germany2026-04-19
1012Russia2026-05-04
1013Japan2026-04-17
1014Argentina2026-04-29
1015Spain2026-05-13
1016Germany2026-04-17
1017Canada2026-05-02
1018Japan2026-04-15
1019Italy2026-04-28
1020Canada2026-04-21
1021France2026-04-19
1022Canada2026-04-27
1023Japan2026-05-10
1024India2026-05-06
1025India2026-05-06
1026Russia2026-05-11
1027France2026-04-29
1028Spain2026-04-24
1029Japan2026-04-20
1030Japan2026-05-03
1031Germany2026-04-30
1032Japan2026-05-08
1033Italy2026-04-27
1034India2026-04-29
1035Italy2026-04-22
1036Australia2026-04-19
1037Spain2026-05-07
1038Spain2026-04-20
1039United Kingdom2026-04-30
1040Russia2026-04-30
1041Italy2026-04-24
1042Spain2026-04-26
1043Italy2026-04-23
1044Italy2026-05-01
1045India2026-04-30
1046France2026-04-15
1047Russia2026-04-18
1048Australia2026-05-06
1049Canada2026-04-20

On-Demand Data

NameIdCountryDate
Aruna Figeroa1000Canada2026-04-27
Morrow Ruta1001Spain2026-04-18
Juan Wieser1002Australia2026-05-07
Jefferson Schemmer1003United Kingdom2026-05-07
Maria Marrier1004Brazil2026-04-24
Juan Wieser1005Japan2026-05-12
Rodrigues Campain1006United Kingdom2026-05-05
Salvatore Stockham1007Germany2026-04-20
Francesco Shinko1008Spain2026-05-12
Alejandro Perin1009India2026-04-30
Mujtaba Nicka1010Canada2026-05-11
Tony Foller1011Spain2026-04-25
Adams Morasca1012Italy2026-05-06
Adams Morasca1013Australia2026-05-09
Ricardo Gaucho1014Canada2026-05-10
Maisha Rulapaugh1015India2026-04-30
Greenwood Bolognia1016United Kingdom2026-05-10
Izzy Garufi1017Canada2026-04-28
Juan Wieser1018United Kingdom2026-04-21
Francesco Shinko1019Italy2026-04-25
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Chavez BriddickGermanyXuxue Feng NEW
Jefferson SchemmerRussiaAnna Fali PROPOSAL
Claire TollnerUnited KingdomOnyama Limba PROPOSAL
Nicolas IturbideAustraliaIoni Bowcher RENEWAL
Rodrigues CampainGermanyElwin Sharvill NEGOTIATION
Aika InouyeJapanStephen Shaw PROPOSAL
Deepesh ChuiIndiaAmy Elsner UNQUALIFIED
Adams MorascaArgentinaStephen Shaw NEGOTIATION
Alejandro PerinBrazilIoni Bowcher PROPOSAL
Smith GlickCanadaOnyama Limba PROPOSAL
Wickens NestleUnited KingdomIvan Magalhaes RENEWAL
Ashley DoeSpainOnyama Limba PROPOSAL
Nicolas IturbideIndiaAsiya Javayant PROPOSAL
Sinclair WaycottGermanyElwin Sharvill UNQUALIFIED
Johnson SergiRussiaXuxue Feng NEW
Ivar PaprockiGermanyBernardo Dominic UNQUALIFIED
Munro FerenczSpainIoni Bowcher QUALIFIED
Sinclair WaycottUnited KingdomIoni Bowcher UNQUALIFIED
Aika InouyeCanadaIvan Magalhaes QUALIFIED
Faith GillianCanadaAmy Elsner PROPOSAL
Clifford RimFranceStephen Shaw PROPOSAL
Murillo MaletCanadaBernardo Dominic NEGOTIATION
Sinclair WaycottCanadaIoni Bowcher RENEWAL
Darci PoquetteArgentinaAmy Elsner PROPOSAL
Silvio SlusarskiArgentinaAsiya Javayant UNQUALIFIED
Johnson SergiGermanyElwin Sharvill NEW
Faith GillianCanadaIoni Bowcher QUALIFIED
Ashley DoeIndiaAsiya Javayant NEGOTIATION
James ButtAustraliaAnna Fali RENEWAL
Antonio CaudyGermanyElwin Sharvill NEGOTIATION
Francesco ShinkoBrazilAnna Fali NEGOTIATION
Claire TollnerBrazilAsiya Javayant UNQUALIFIED
Sinclair WaycottUnited KingdomAnna Fali QUALIFIED
Deepesh ChuiFranceXuxue Feng PROPOSAL
Morrow RutaUnited KingdomStephen Shaw QUALIFIED
Jones VocelkaArgentinaAsiya Javayant QUALIFIED
Alejandro PerinArgentinaStephen Shaw RENEWAL
David DarakjySpainElwin Sharvill PROPOSAL
Costa DilliardFranceAmy Elsner NEGOTIATION
James ButtUnited KingdomAnna Fali 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>