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
Smith GlickItalyXuxue Feng NEW
Aditya KuskoArgentinaBernardo Dominic NEW
Octavia MaletSpainAnna Fali NEGOTIATION
Adams MorascaJapanAmy Elsner PROPOSAL
Costa DilliardItalyStephen Shaw NEGOTIATION
Chavez BriddickUnited KingdomElwin Sharvill UNQUALIFIED
Leon OldroydBrazilElwin Sharvill QUALIFIED
Leon OldroydFranceXuxue Feng NEGOTIATION
Aditya KuskoRussiaIvan Magalhaes RENEWAL
Greenwood BologniaItalyIvan Magalhaes NEGOTIATION
Faith GillianJapanAnna Fali NEW
Munro FerenczItalyIvan Magalhaes UNQUALIFIED
Silvio SlusarskiFranceIoni Bowcher PROPOSAL
Leja CaldareraArgentinaStephen Shaw UNQUALIFIED
Stacey MacleadSpainElwin Sharvill UNQUALIFIED
Francesco ShinkoUnited KingdomElwin Sharvill NEGOTIATION
Antonio CaudySpainBernardo Dominic UNQUALIFIED
Stacey MacleadCanadaOnyama Limba UNQUALIFIED
Claire TollnerGermanyBernardo Dominic NEGOTIATION
Ivar PaprockiItalyElwin Sharvill RENEWAL
Julie StensethBrazilOnyama Limba NEGOTIATION
Kadeem FlosiUnited KingdomAsiya Javayant RENEWAL
Arvin AlbaresItalyOnyama Limba RENEWAL
Claire TollnerItalyAnna Fali QUALIFIED
David DarakjyIndiaStephen Shaw UNQUALIFIED
Wickens NestleGermanyAmy Elsner QUALIFIED
Clifford RimSpainOnyama Limba PROPOSAL
Isabel BowleyIndiaStephen Shaw UNQUALIFIED
Tony FollerGermanyElwin Sharvill UNQUALIFIED
Kadeem FlosiItalyAmy Elsner RENEWAL
Kaitlin OstroskyBrazilOnyama Limba QUALIFIED
Juan WieserAustraliaBernardo Dominic NEGOTIATION
Munro FerenczItalyAnna Fali NEGOTIATION
Sinclair WaycottRussiaIoni Bowcher UNQUALIFIED
Adams MorascaCanadaStephen Shaw RENEWAL
Francesco ShinkoIndiaIvan Magalhaes PROPOSAL
Claire TollnerCanadaElwin Sharvill PROPOSAL
Morrow RutaUnited KingdomIvan Magalhaes NEW
Jennifer AmigonGermanyOnyama Limba QUALIFIED
Greenwood BologniaGermanyOnyama Limba UNQUALIFIED
Misaki RoysterGermanyIvan Magalhaes RENEWAL
David DarakjyArgentinaIvan Magalhaes RENEWAL
Jefferson SchemmerItalyElwin Sharvill RENEWAL
Jones VocelkaRussiaOnyama Limba NEW
Sinclair WaycottBrazilAmy Elsner QUALIFIED
Faith GillianFranceIvan Magalhaes QUALIFIED
Kadeem FlosiAustraliaAnna Fali RENEWAL
Faith GillianItalyAnna Fali NEW
Octavia MaletBrazilStephen Shaw QUALIFIED
Jones VocelkaJapanXuxue Feng RENEWAL
Horizontal
NameCountryRepresentativeStatus
Adams MorascaItalyXuxue Feng PROPOSAL
Kadeem FlosiCanadaOnyama Limba QUALIFIED
Jeanfrancois VenereUnited KingdomXuxue Feng NEW
Kaitlin OstroskyAustraliaElwin Sharvill UNQUALIFIED
Emily WhobreyJapanAsiya Javayant UNQUALIFIED
Antonio CaudyGermanyIoni Bowcher UNQUALIFIED
Emily WhobreyArgentinaAsiya Javayant NEGOTIATION
Aruna FigeroaBrazilOnyama Limba NEW
Munro FerenczIndiaAsiya Javayant PROPOSAL
Octavia MaletBrazilOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson SchemmerArgentina2026-04-21Chemel, James L Cpa PROPOSAL30Xuxue Feng
1001Aruna FigeroaItaly2026-05-13Rousseaux, Michael Esq UNQUALIFIED90Elwin Sharvill
1002Maisha RulapaughSpain2026-05-12Feltz Printing Service NEW32Amy Elsner
1003Isabel BowleyRussia2026-04-27Truhlar And Truhlar Attys NEW58Ivan Magalhaes
1004Silvio SlusarskiRussia2026-05-06King, Christopher A Esq PROPOSAL47Amy Elsner
1005Deepesh ChuiIndia2026-05-01Morlong Associates RENEWAL65Asiya Javayant
1006Faith GillianSpain2026-04-30Rousseaux, Michael Esq UNQUALIFIED66Ioni Bowcher
1007Adams MorascaUnited Kingdom2026-04-24Buckley Miller Wright NEGOTIATION62Onyama Limba
1008Smith GlickIndia2026-04-22Printing Dimensions PROPOSAL8Asiya Javayant
1009Murillo MaletUnited Kingdom2026-05-07Chemel, James L Cpa PROPOSAL63Elwin Sharvill
1010Maisha RulapaughCanada2026-04-27Morlong Associates RENEWAL6Amy Elsner
1011Juan WieserArgentina2026-05-04Rousseaux, Michael Esq NEGOTIATION99Ivan Magalhaes
1012Maria MarrierRussia2026-04-30Commercial Press UNQUALIFIED67Stephen Shaw
1013Julie StensethRussia2026-04-22Truhlar And Truhlar Attys NEGOTIATION45Anna Fali
1014Darci PoquetteFrance2026-05-01Chapman, Ross E Esq PROPOSAL90Stephen Shaw
1015Munro FerenczIndia2026-04-26King, Christopher A Esq PROPOSAL82Amy Elsner
1016Faith GillianAustralia2026-04-18Printing Dimensions NEGOTIATION82Elwin Sharvill
1017Smith GlickGermany2026-04-26Chapman, Ross E Esq NEW56Asiya Javayant
1018Rodrigues CampainItaly2026-04-26Chemel, James L Cpa NEW6Anna Fali
1019Aruna FigeroaArgentina2026-04-25Chemel, James L Cpa UNQUALIFIED23Stephen Shaw
1020Mayumi KolmetzArgentina2026-04-16Morlong Associates NEW56Stephen Shaw
1021James ButtBrazil2026-04-27Printing Dimensions QUALIFIED2Xuxue Feng
1022Antonio CaudySpain2026-04-17Dorl, James J Esq NEGOTIATION99Asiya Javayant
1023Arvin AlbaresGermany2026-04-29Benton, John B Jr NEGOTIATION26Asiya Javayant
1024Darci PoquetteRussia2026-04-21Rousseaux, Michael Esq NEGOTIATION35Ioni Bowcher
1025Costa DilliardItaly2026-05-07Dorl, James J Esq UNQUALIFIED10Amy Elsner
1026Julie StensethUnited Kingdom2026-05-12Dorl, James J Esq RENEWAL20Bernardo Dominic
1027Johnson SergiItaly2026-04-18Commercial Press QUALIFIED32Onyama Limba
1028Maisha RulapaughUnited Kingdom2026-04-14Buckley Miller Wright PROPOSAL28Ivan Magalhaes
1029Darci PoquetteSpain2026-04-28Truhlar And Truhlar Attys UNQUALIFIED43Anna Fali
1030Johnson SergiAustralia2026-04-22King, Christopher A Esq UNQUALIFIED64Onyama Limba
1031Costa DilliardArgentina2026-04-19Truhlar And Truhlar Attys PROPOSAL12Bernardo Dominic
1032Wickens NestleFrance2026-04-26Chapman, Ross E Esq RENEWAL11Bernardo Dominic
1033Isabel BowleyCanada2026-04-27Chanay, Jeffrey A Esq NEGOTIATION91Asiya Javayant
1034Cody SaylorsIndia2026-04-28Chanay, Jeffrey A Esq QUALIFIED57Bernardo Dominic
1035Aruna FigeroaItaly2026-04-29Benton, John B Jr PROPOSAL15Ioni Bowcher
1036Juan WieserItaly2026-04-30King, Christopher A Esq RENEWAL77Ivan Magalhaes
1037Salvatore StockhamUnited Kingdom2026-05-02Truhlar And Truhlar Attys UNQUALIFIED90Amy Elsner
1038Kadeem FlosiItaly2026-05-01Feltz Printing Service UNQUALIFIED49Xuxue Feng
1039Johnson SergiBrazil2026-04-30Rousseaux, Michael Esq RENEWAL25Ioni Bowcher
1040Aruna FigeroaGermany2026-04-27Commercial Press QUALIFIED98Onyama Limba
1041Leon OldroydUnited Kingdom2026-04-22Chemel, James L Cpa PROPOSAL50Stephen Shaw
1042Leon OldroydAustralia2026-05-11Feiner Bros PROPOSAL38Amy Elsner
1043Jennifer AmigonFrance2026-05-01Commercial Press NEW10Onyama Limba
1044Izzy GarufiFrance2026-05-11Truhlar And Truhlar Attys NEW10Elwin Sharvill
1045Stacey MacleadIndia2026-05-13Rousseaux, Michael Esq QUALIFIED52Ioni Bowcher
1046Ivar PaprockiFrance2026-04-16Chapman, Ross E Esq RENEWAL22Stephen Shaw
1047Costa DilliardGermany2026-05-08Feltz Printing Service RENEWAL91Ioni Bowcher
1048Francesco ShinkoUnited Kingdom2026-04-20Rousseaux, Michael Esq NEGOTIATION78Onyama Limba
1049Jefferson SchemmerRussia2026-05-01Chanay, Jeffrey A Esq NEW36Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Kadeem FlosiCanadaAnna Fali QUALIFIED
Arvin AlbaresUnited KingdomIoni Bowcher NEGOTIATION
Mayumi KolmetzUnited KingdomAsiya Javayant PROPOSAL
Murillo MaletUnited KingdomIoni Bowcher PROPOSAL
Darci PoquetteSpainXuxue Feng UNQUALIFIED
Wickens NestleJapanXuxue Feng PROPOSAL
Cody SaylorsUnited KingdomIvan Magalhaes RENEWAL
Adams MorascaIndiaIvan Magalhaes RENEWAL
Arvin AlbaresJapanIvan Magalhaes NEGOTIATION
Leon OldroydItalyOnyama Limba UNQUALIFIED
Johnson SergiFranceAmy Elsner QUALIFIED
Chavez BriddickArgentinaStephen Shaw QUALIFIED
Leja CaldareraIndiaAsiya Javayant NEGOTIATION
Smith GlickItalyIoni Bowcher PROPOSAL
Isabel BowleyAustraliaStephen Shaw RENEWAL
James ButtSpainBernardo Dominic UNQUALIFIED
Kaitlin OstroskyIndiaOnyama Limba NEGOTIATION
Smith GlickBrazilBernardo Dominic QUALIFIED
Munro FerenczGermanyAmy Elsner UNQUALIFIED
Leon OldroydSpainIvan Magalhaes PROPOSAL
Ashley DoeArgentinaOnyama Limba QUALIFIED
Misaki RoysterCanadaBernardo Dominic NEW
Kaitlin OstroskyFranceBernardo Dominic QUALIFIED
Misaki RoysterGermanyAnna Fali RENEWAL
Adams MorascaCanadaElwin Sharvill QUALIFIED
Ashley DoeAustraliaAmy Elsner UNQUALIFIED
Alejandro PerinItalyAnna Fali QUALIFIED
Murillo MaletGermanyAnna Fali QUALIFIED
David DarakjyItalyXuxue Feng QUALIFIED
Francesco ShinkoIndiaAsiya Javayant QUALIFIED
Emily WhobreyIndiaAnna Fali NEGOTIATION
Darci PoquetteRussiaOnyama Limba UNQUALIFIED
Alejandro PerinCanadaIvan Magalhaes NEW
Adams MorascaAustraliaStephen Shaw NEGOTIATION
Octavia MaletGermanyAnna Fali NEW
Nicolas IturbideItalyBernardo Dominic NEW
Tony FollerUnited KingdomBernardo Dominic NEW
James ButtSpainStephen Shaw UNQUALIFIED
David DarakjyIndiaElwin Sharvill NEGOTIATION
Clifford RimIndiaStephen Shaw NEGOTIATION
Nicolas IturbideBrazilAsiya Javayant NEGOTIATION
Maria MarrierIndiaElwin Sharvill QUALIFIED
Sinclair WaycottRussiaAnna Fali UNQUALIFIED
Leon OldroydArgentinaStephen Shaw QUALIFIED
James ButtCanadaAnna Fali QUALIFIED
Kaitlin OstroskyJapanStephen Shaw RENEWAL
Leja CaldareraItalyBernardo Dominic PROPOSAL
Izzy GarufiIndiaXuxue Feng RENEWAL
Juan WieserArgentinaElwin Sharvill NEW
Ashley DoeFranceIvan Magalhaes NEW
Frozen Columns
Name
Jefferson Schemmer
Tony Foller
David Darakjy
Leja Caldarera
Rodrigues Campain
Mayumi Kolmetz
Claire Tollner
Costa Dilliard
Ricardo Gaucho
Julie Stenseth
Jeanfrancois Venere
Aika Inouye
Leon Oldroyd
Mayumi Kolmetz
Smith Glick
Alejandro Perin
Jennifer Amigon
Misaki Royster
Mayumi Kolmetz
Aika Inouye
Johnson Sergi
Misaki Royster
Wickens Nestle
Claire Tollner
Silvio Slusarski
Jeanfrancois Venere
Jones Vocelka
Greenwood Bolognia
Costa Dilliard
Darci Poquette
Stacey Maclead
Sinclair Waycott
Faith Gillian
Morrow Ruta
Emily Whobrey
Greenwood Bolognia
James Butt
Chavez Briddick
Ivar Paprocki
Mayumi Kolmetz
Julie Stenseth
Morrow Ruta
Greenwood Bolognia
Chavez Briddick
Isabel Bowley
Kadeem Flosi
Adams Morasca
Tony Foller
Maisha Rulapaugh
Julie Stenseth
IdCountryDate
1000United Kingdom2026-04-24
1001Canada2026-04-14
1002Canada2026-04-20
1003Brazil2026-05-09
1004United Kingdom2026-05-09
1005Russia2026-05-09
1006Japan2026-05-12
1007Spain2026-05-01
1008Australia2026-05-06
1009Canada2026-04-24
1010Argentina2026-04-22
1011France2026-05-09
1012Germany2026-04-26
1013Canada2026-04-20
1014France2026-04-23
1015Germany2026-04-24
1016Argentina2026-04-23
1017Japan2026-05-11
1018Canada2026-04-17
1019France2026-04-24
1020India2026-04-16
1021Japan2026-04-21
1022United Kingdom2026-05-05
1023Japan2026-04-19
1024United Kingdom2026-05-05
1025Canada2026-04-21
1026Russia2026-05-10
1027Italy2026-04-19
1028Russia2026-04-18
1029Spain2026-04-18
1030Italy2026-04-28
1031Brazil2026-05-11
1032Australia2026-05-07
1033Japan2026-05-12
1034France2026-05-05
1035Germany2026-04-30
1036Australia2026-05-08
1037Spain2026-05-04
1038Brazil2026-04-30
1039India2026-05-13
1040Japan2026-05-09
1041Australia2026-04-29
1042Russia2026-04-24
1043Canada2026-05-10
1044Argentina2026-04-22
1045United Kingdom2026-05-09
1046India2026-05-12
1047Russia2026-04-18
1048Spain2026-04-30
1049France2026-04-26

On-Demand Data

NameIdCountryDate
Wickens Nestle1000India2026-04-20
Jeanfrancois Venere1001Italy2026-05-04
Claire Tollner1002Germany2026-05-04
Deepesh Chui1003Argentina2026-05-02
Sinclair Waycott1004Canada2026-05-13
Jennifer Amigon1005Canada2026-04-19
Murillo Malet1006India2026-04-20
Mujtaba Nicka1007Japan2026-05-08
Deepesh Chui1008Italy2026-05-03
Misaki Royster1009Canada2026-04-21
Faith Gillian1010Australia2026-05-03
David Darakjy1011Germany2026-05-11
Clifford Rim1012United Kingdom2026-04-27
Chavez Briddick1013Australia2026-04-29
Jones Vocelka1014Italy2026-05-05
Izzy Garufi1015Canada2026-04-21
Ivar Paprocki1016Spain2026-05-08
Leon Oldroyd1017India2026-04-24
Deepesh Chui1018Italy2026-04-30
David Darakjy1019Russia2026-05-04
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Leja CaldareraCanadaElwin Sharvill RENEWAL
Deepesh ChuiFranceOnyama Limba PROPOSAL
Misaki RoysterBrazilOnyama Limba UNQUALIFIED
David DarakjyRussiaAnna Fali PROPOSAL
Leja CaldareraRussiaXuxue Feng RENEWAL
Ashley DoeBrazilAmy Elsner PROPOSAL
Maria MarrierCanadaElwin Sharvill NEGOTIATION
Leon OldroydRussiaIvan Magalhaes NEGOTIATION
Greenwood BologniaRussiaXuxue Feng QUALIFIED
Mayumi KolmetzRussiaAnna Fali NEW
Smith GlickIndiaXuxue Feng QUALIFIED
Faith GillianItalyBernardo Dominic PROPOSAL
Kadeem FlosiGermanyStephen Shaw NEGOTIATION
Murillo MaletArgentinaAmy Elsner RENEWAL
Cody SaylorsItalyAnna Fali NEW
Maisha RulapaughItalyStephen Shaw PROPOSAL
Smith GlickAustraliaIoni Bowcher RENEWAL
Aditya KuskoCanadaAmy Elsner UNQUALIFIED
Ashley DoeArgentinaOnyama Limba NEW
Silvio SlusarskiUnited KingdomXuxue Feng NEGOTIATION
Cody SaylorsAustraliaOnyama Limba QUALIFIED
Salvatore StockhamIndiaIoni Bowcher QUALIFIED
Sinclair WaycottAustraliaIvan Magalhaes UNQUALIFIED
Maisha RulapaughIndiaBernardo Dominic NEW
Jeanfrancois VenereArgentinaIoni Bowcher NEW
Julie StensethAustraliaXuxue Feng UNQUALIFIED
Claire TollnerAustraliaElwin Sharvill PROPOSAL
Jennifer AmigonUnited KingdomIoni Bowcher QUALIFIED
Maria MarrierGermanyStephen Shaw NEW
Aika InouyeArgentinaAsiya Javayant NEGOTIATION
Mujtaba NickaItalyAnna Fali NEGOTIATION
Arvin AlbaresUnited KingdomXuxue Feng PROPOSAL
Ivar PaprockiUnited KingdomXuxue Feng RENEWAL
Costa DilliardItalyIvan Magalhaes QUALIFIED
Alejandro PerinGermanyBernardo Dominic NEGOTIATION
Emily WhobreyFranceOnyama Limba NEGOTIATION
Emily WhobreyFranceXuxue Feng QUALIFIED
Antonio CaudySpainOnyama Limba NEGOTIATION
Ivar PaprockiGermanyStephen Shaw RENEWAL
Sinclair WaycottJapanBernardo Dominic 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>