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
Stacey MacleadFranceIvan Magalhaes UNQUALIFIED
Isabel BowleyItalyElwin Sharvill NEW
Claire TollnerFranceOnyama Limba UNQUALIFIED
Aika InouyeBrazilStephen Shaw NEGOTIATION
Leja CaldareraJapanIvan Magalhaes PROPOSAL
Maria MarrierJapanAnna Fali UNQUALIFIED
Juan WieserSpainElwin Sharvill UNQUALIFIED
Costa DilliardUnited KingdomXuxue Feng RENEWAL
Misaki RoysterItalyAmy Elsner QUALIFIED
Deepesh ChuiIndiaAmy Elsner PROPOSAL
Julie StensethSpainAnna Fali RENEWAL
Deepesh ChuiBrazilIoni Bowcher UNQUALIFIED
Costa DilliardRussiaStephen Shaw UNQUALIFIED
Johnson SergiIndiaIoni Bowcher QUALIFIED
Clifford RimItalyIoni Bowcher UNQUALIFIED
Aditya KuskoSpainXuxue Feng PROPOSAL
Isabel BowleyBrazilStephen Shaw QUALIFIED
Munro FerenczBrazilXuxue Feng NEGOTIATION
Leon OldroydBrazilIvan Magalhaes RENEWAL
Emily WhobreyJapanBernardo Dominic RENEWAL
Darci PoquetteCanadaAsiya Javayant PROPOSAL
Izzy GarufiFranceIoni Bowcher RENEWAL
Emily WhobreyCanadaAsiya Javayant UNQUALIFIED
Faith GillianUnited KingdomElwin Sharvill NEGOTIATION
Munro FerenczUnited KingdomAmy Elsner NEW
Clifford RimArgentinaStephen Shaw QUALIFIED
Munro FerenczSpainAsiya Javayant NEW
Clifford RimRussiaAnna Fali NEW
Jeanfrancois VenereArgentinaAsiya Javayant QUALIFIED
Munro FerenczRussiaAmy Elsner NEW
Silvio SlusarskiUnited KingdomElwin Sharvill RENEWAL
Juan WieserUnited KingdomIoni Bowcher PROPOSAL
Murillo MaletUnited KingdomAsiya Javayant NEW
Nicolas IturbideFranceBernardo Dominic RENEWAL
Jennifer AmigonJapanElwin Sharvill NEW
Chavez BriddickAustraliaXuxue Feng QUALIFIED
Chavez BriddickJapanBernardo Dominic RENEWAL
Wickens NestleItalyIoni Bowcher PROPOSAL
Wickens NestleArgentinaAnna Fali PROPOSAL
Greenwood BologniaArgentinaOnyama Limba QUALIFIED
Jeanfrancois VenereAustraliaStephen Shaw UNQUALIFIED
Ashley DoeUnited KingdomStephen Shaw RENEWAL
Silvio SlusarskiIndiaXuxue Feng NEGOTIATION
Faith GillianArgentinaOnyama Limba PROPOSAL
Deepesh ChuiCanadaBernardo Dominic PROPOSAL
Leja CaldareraGermanyBernardo Dominic NEW
Ashley DoeIndiaAsiya Javayant NEGOTIATION
Salvatore StockhamCanadaElwin Sharvill RENEWAL
Antonio CaudyCanadaIvan Magalhaes PROPOSAL
Mayumi KolmetzCanadaStephen Shaw UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Antonio CaudyFranceBernardo Dominic NEW
Chavez BriddickAustraliaIvan Magalhaes NEGOTIATION
Aruna FigeroaGermanyXuxue Feng RENEWAL
Kadeem FlosiIndiaStephen Shaw QUALIFIED
Faith GillianJapanIvan Magalhaes QUALIFIED
Octavia MaletArgentinaOnyama Limba RENEWAL
Ashley DoeAustraliaAsiya Javayant UNQUALIFIED
Jennifer AmigonItalyAsiya Javayant RENEWAL
Wickens NestleCanadaElwin Sharvill NEW
Johnson SergiArgentinaBernardo Dominic PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Mayumi KolmetzSpain2026-05-15Buckley Miller Wright QUALIFIED34Stephen Shaw
1001Izzy GarufiBrazil2026-05-12Chemel, James L Cpa NEW80Xuxue Feng
1002Murillo MaletJapan2026-04-21Chapman, Ross E Esq RENEWAL94Stephen Shaw
1003Jones VocelkaFrance2026-05-05Rangoni Of Florence UNQUALIFIED9Stephen Shaw
1004Mujtaba NickaBrazil2026-04-21Truhlar And Truhlar Attys NEW57Ioni Bowcher
1005Munro FerenczBrazil2026-05-01Chanay, Jeffrey A Esq RENEWAL9Elwin Sharvill
1006Murillo MaletRussia2026-05-02King, Christopher A Esq QUALIFIED72Onyama Limba
1007Claire TollnerSpain2026-05-07Chanay, Jeffrey A Esq NEW1Anna Fali
1008Silvio SlusarskiRussia2026-05-19Buckley Miller Wright NEW53Bernardo Dominic
1009Aditya KuskoCanada2026-05-20Rousseaux, Michael Esq UNQUALIFIED30Stephen Shaw
1010Jeanfrancois VenereCanada2026-04-28Rousseaux, Michael Esq UNQUALIFIED35Ivan Magalhaes
1011Leja CaldareraUnited Kingdom2026-04-24Feiner Bros NEGOTIATION33Amy Elsner
1012Salvatore StockhamRussia2026-04-24Chanay, Jeffrey A Esq QUALIFIED27Bernardo Dominic
1013Jones VocelkaRussia2026-05-02Dorl, James J Esq PROPOSAL54Stephen Shaw
1014Maria MarrierSpain2026-05-02Feltz Printing Service NEGOTIATION53Ioni Bowcher
1015Jefferson SchemmerUnited Kingdom2026-05-18Commercial Press RENEWAL85Xuxue Feng
1016Misaki RoysterJapan2026-05-07Printing Dimensions UNQUALIFIED73Stephen Shaw
1017David DarakjyUnited Kingdom2026-05-04Buckley Miller Wright NEGOTIATION49Onyama Limba
1018Adams MorascaIndia2026-04-24Rangoni Of Florence RENEWAL98Asiya Javayant
1019Jefferson SchemmerRussia2026-05-16Morlong Associates NEW80Stephen Shaw
1020Leja CaldareraArgentina2026-05-05Chanay, Jeffrey A Esq QUALIFIED59Asiya Javayant
1021Jefferson SchemmerGermany2026-05-15Morlong Associates NEW88Bernardo Dominic
1022Julie StensethArgentina2026-04-23Chemel, James L Cpa NEGOTIATION92Onyama Limba
1023Kaitlin OstroskyItaly2026-04-21Chapman, Ross E Esq NEGOTIATION63Ioni Bowcher
1024Antonio CaudyUnited Kingdom2026-04-28King, Christopher A Esq NEGOTIATION1Stephen Shaw
1025Maria MarrierGermany2026-05-08Buckley Miller Wright UNQUALIFIED23Stephen Shaw
1026Antonio CaudyUnited Kingdom2026-05-17King, Christopher A Esq RENEWAL32Onyama Limba
1027Tony FollerBrazil2026-05-03Buckley Miller Wright QUALIFIED38Ivan Magalhaes
1028Munro FerenczArgentina2026-04-21Buckley Miller Wright QUALIFIED25Onyama Limba
1029Alejandro PerinAustralia2026-04-26Benton, John B Jr NEW49Anna Fali
1030Faith GillianJapan2026-05-12Rangoni Of Florence QUALIFIED59Ivan Magalhaes
1031Claire TollnerRussia2026-05-11Truhlar And Truhlar Attys NEW97Anna Fali
1032Leon OldroydItaly2026-05-08Chapman, Ross E Esq RENEWAL45Asiya Javayant
1033Maria MarrierArgentina2026-04-26Commercial Press PROPOSAL2Ioni Bowcher
1034Jennifer AmigonJapan2026-05-17Morlong Associates NEW14Amy Elsner
1035Morrow RutaBrazil2026-05-02Commercial Press RENEWAL49Bernardo Dominic
1036Misaki RoysterUnited Kingdom2026-05-14Chemel, James L Cpa RENEWAL95Amy Elsner
1037Murillo MaletRussia2026-05-13Chapman, Ross E Esq RENEWAL8Bernardo Dominic
1038Chavez BriddickBrazil2026-04-27Chapman, Ross E Esq QUALIFIED72Xuxue Feng
1039Maria MarrierSpain2026-05-01Benton, John B Jr QUALIFIED39Ivan Magalhaes
1040Faith GillianArgentina2026-05-16Chemel, James L Cpa NEW91Anna Fali
1041Izzy GarufiIndia2026-05-01Benton, John B Jr NEW30Amy Elsner
1042Jefferson SchemmerArgentina2026-05-03Rangoni Of Florence PROPOSAL85Onyama Limba
1043Jones VocelkaUnited Kingdom2026-05-20Feltz Printing Service PROPOSAL52Amy Elsner
1044Nicolas IturbideIndia2026-04-24Dorl, James J Esq NEW98Amy Elsner
1045Adams MorascaBrazil2026-05-13Printing Dimensions QUALIFIED66Ivan Magalhaes
1046Arvin AlbaresArgentina2026-05-19Benton, John B Jr NEW93Bernardo Dominic
1047David DarakjyGermany2026-04-23Benton, John B Jr NEGOTIATION52Ivan Magalhaes
1048Darci PoquetteJapan2026-05-20Truhlar And Truhlar Attys NEGOTIATION31Elwin Sharvill
1049Mujtaba NickaItaly2026-04-28Chemel, James L Cpa UNQUALIFIED81Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamFranceStephen Shaw NEW
Cody SaylorsUnited KingdomBernardo Dominic NEW
Isabel BowleyUnited KingdomStephen Shaw NEGOTIATION
Julie StensethGermanyIvan Magalhaes UNQUALIFIED
Nicolas IturbideCanadaBernardo Dominic QUALIFIED
James ButtUnited KingdomIoni Bowcher QUALIFIED
Morrow RutaArgentinaElwin Sharvill QUALIFIED
James ButtFranceElwin Sharvill PROPOSAL
Aruna FigeroaAustraliaIvan Magalhaes PROPOSAL
Leon OldroydSpainAsiya Javayant NEW
Aditya KuskoGermanyAmy Elsner UNQUALIFIED
Kadeem FlosiBrazilStephen Shaw PROPOSAL
Ashley DoeArgentinaAsiya Javayant NEGOTIATION
Murillo MaletRussiaStephen Shaw NEGOTIATION
Clifford RimBrazilElwin Sharvill QUALIFIED
Leon OldroydAustraliaIvan Magalhaes QUALIFIED
Costa DilliardFranceIoni Bowcher QUALIFIED
Stacey MacleadAustraliaAnna Fali NEGOTIATION
Ashley DoeCanadaStephen Shaw UNQUALIFIED
Alejandro PerinItalyStephen Shaw UNQUALIFIED
Ricardo GauchoRussiaAmy Elsner QUALIFIED
Deepesh ChuiIndiaXuxue Feng RENEWAL
Juan WieserIndiaAsiya Javayant NEGOTIATION
Murillo MaletArgentinaXuxue Feng NEGOTIATION
Mayumi KolmetzAustraliaXuxue Feng QUALIFIED
David DarakjyIndiaStephen Shaw QUALIFIED
James ButtJapanIvan Magalhaes QUALIFIED
Costa DilliardAustraliaBernardo Dominic UNQUALIFIED
Antonio CaudyItalyStephen Shaw NEGOTIATION
Deepesh ChuiFranceAnna Fali QUALIFIED
Cody SaylorsGermanyBernardo Dominic NEW
Clifford RimIndiaAsiya Javayant PROPOSAL
Clifford RimSpainElwin Sharvill QUALIFIED
James ButtJapanElwin Sharvill PROPOSAL
Francesco ShinkoAustraliaOnyama Limba NEW
Chavez BriddickArgentinaAmy Elsner RENEWAL
Ashley DoeArgentinaIvan Magalhaes PROPOSAL
Cody SaylorsUnited KingdomIoni Bowcher NEGOTIATION
Greenwood BologniaJapanBernardo Dominic UNQUALIFIED
Greenwood BologniaSpainElwin Sharvill PROPOSAL
Kadeem FlosiUnited KingdomAmy Elsner PROPOSAL
Murillo MaletCanadaElwin Sharvill QUALIFIED
Morrow RutaIndiaStephen Shaw UNQUALIFIED
Mayumi KolmetzGermanyAsiya Javayant UNQUALIFIED
Izzy GarufiArgentinaElwin Sharvill NEGOTIATION
Sinclair WaycottAustraliaBernardo Dominic PROPOSAL
Jennifer AmigonItalyXuxue Feng RENEWAL
James ButtUnited KingdomIvan Magalhaes UNQUALIFIED
Salvatore StockhamItalyBernardo Dominic PROPOSAL
Mujtaba NickaArgentinaOnyama Limba QUALIFIED
Frozen Columns
Name
Cody Saylors
Izzy Garufi
Wickens Nestle
Salvatore Stockham
Isabel Bowley
Emily Whobrey
Claire Tollner
Leon Oldroyd
Ricardo Gaucho
Ashley Doe
Faith Gillian
Rodrigues Campain
Izzy Garufi
Clifford Rim
Mayumi Kolmetz
Leon Oldroyd
Aruna Figeroa
Greenwood Bolognia
Francesco Shinko
David Darakjy
Tony Foller
Silvio Slusarski
Aditya Kusko
Darci Poquette
Maisha Rulapaugh
Darci Poquette
Maria Marrier
Maria Marrier
Francesco Shinko
Chavez Briddick
Mayumi Kolmetz
Francesco Shinko
Octavia Malet
Mayumi Kolmetz
Munro Ferencz
Johnson Sergi
Emily Whobrey
Rodrigues Campain
Julie Stenseth
Stacey Maclead
Salvatore Stockham
Salvatore Stockham
Tony Foller
Nicolas Iturbide
Emily Whobrey
Leja Caldarera
Aika Inouye
Murillo Malet
Izzy Garufi
Cody Saylors
IdCountryDate
1000Germany2026-04-28
1001Italy2026-05-11
1002United Kingdom2026-05-05
1003India2026-05-02
1004Australia2026-05-12
1005Argentina2026-04-30
1006Japan2026-04-28
1007Brazil2026-05-19
1008France2026-05-09
1009Canada2026-05-08
1010Argentina2026-05-13
1011Australia2026-05-14
1012Canada2026-05-07
1013Italy2026-05-19
1014Germany2026-05-08
1015Argentina2026-05-18
1016Japan2026-04-24
1017Japan2026-04-25
1018Germany2026-04-26
1019Australia2026-04-30
1020Russia2026-05-10
1021India2026-04-29
1022Japan2026-05-11
1023Canada2026-04-28
1024Japan2026-04-26
1025France2026-04-22
1026Brazil2026-05-02
1027Australia2026-04-28
1028Spain2026-04-26
1029India2026-04-22
1030Japan2026-05-12
1031Argentina2026-04-24
1032France2026-05-10
1033Spain2026-05-06
1034Russia2026-05-16
1035Japan2026-05-06
1036Brazil2026-05-14
1037Argentina2026-05-09
1038United Kingdom2026-05-02
1039Argentina2026-05-05
1040Germany2026-05-16
1041Italy2026-04-28
1042Germany2026-05-07
1043United Kingdom2026-05-01
1044Italy2026-05-11
1045Italy2026-05-08
1046Italy2026-04-25
1047India2026-05-19
1048Spain2026-04-25
1049Russia2026-04-24

On-Demand Data

NameIdCountryDate
Juan Wieser1000India2026-05-11
Mayumi Kolmetz1001Italy2026-05-12
Cody Saylors1002Spain2026-05-07
Stacey Maclead1003Japan2026-05-13
Kadeem Flosi1004Germany2026-05-10
Murillo Malet1005Japan2026-04-24
Julie Stenseth1006Argentina2026-04-28
Kaitlin Ostrosky1007Japan2026-05-04
James Butt1008Spain2026-04-30
Deepesh Chui1009France2026-05-13
Costa Dilliard1010Spain2026-04-21
Sinclair Waycott1011Australia2026-05-07
Cody Saylors1012Italy2026-05-02
Darci Poquette1013Italy2026-05-17
Faith Gillian1014Italy2026-05-16
Sinclair Waycott1015Brazil2026-05-13
Stacey Maclead1016Spain2026-04-22
Maisha Rulapaugh1017Brazil2026-05-06
Misaki Royster1018Brazil2026-04-29
Stacey Maclead1019Canada2026-05-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Julie StensethRussiaAsiya Javayant UNQUALIFIED
Wickens NestleItalyIvan Magalhaes QUALIFIED
Kaitlin OstroskyBrazilAmy Elsner QUALIFIED
Julie StensethArgentinaIvan Magalhaes QUALIFIED
Misaki RoysterArgentinaAmy Elsner PROPOSAL
Ashley DoeJapanAmy Elsner PROPOSAL
Deepesh ChuiFranceXuxue Feng RENEWAL
Mayumi KolmetzRussiaXuxue Feng RENEWAL
Emily WhobreyBrazilAnna Fali UNQUALIFIED
Jeanfrancois VenereSpainOnyama Limba QUALIFIED
Morrow RutaGermanyOnyama Limba NEW
Alejandro PerinJapanStephen Shaw PROPOSAL
Darci PoquetteIndiaElwin Sharvill UNQUALIFIED
Rodrigues CampainUnited KingdomStephen Shaw NEGOTIATION
Silvio SlusarskiUnited KingdomXuxue Feng NEW
Ivar PaprockiRussiaAsiya Javayant PROPOSAL
Adams MorascaAustraliaXuxue Feng RENEWAL
Jefferson SchemmerFranceAmy Elsner QUALIFIED
Izzy GarufiSpainElwin Sharvill QUALIFIED
Johnson SergiGermanyIvan Magalhaes RENEWAL
Murillo MaletIndiaStephen Shaw RENEWAL
Munro FerenczIndiaElwin Sharvill NEW
Jeanfrancois VenereSpainStephen Shaw PROPOSAL
Juan WieserUnited KingdomAmy Elsner NEW
Jeanfrancois VenereBrazilAmy Elsner QUALIFIED
Jeanfrancois VenereGermanyOnyama Limba PROPOSAL
Salvatore StockhamAustraliaElwin Sharvill NEGOTIATION
Jennifer AmigonGermanyIvan Magalhaes RENEWAL
Stacey MacleadUnited KingdomAnna Fali NEW
Ivar PaprockiCanadaAmy Elsner NEGOTIATION
Aruna FigeroaJapanXuxue Feng RENEWAL
Aditya KuskoRussiaOnyama Limba UNQUALIFIED
Ivar PaprockiRussiaBernardo Dominic QUALIFIED
Smith GlickGermanyAnna Fali PROPOSAL
Chavez BriddickArgentinaAnna Fali RENEWAL
Costa DilliardUnited KingdomBernardo Dominic PROPOSAL
Ashley DoeUnited KingdomAnna Fali UNQUALIFIED
Kaitlin OstroskyItalyOnyama Limba RENEWAL
Izzy GarufiCanadaElwin Sharvill NEW
Arvin AlbaresBrazilIoni Bowcher 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>