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
Leon OldroydSpainAmy Elsner QUALIFIED
David DarakjyCanadaElwin Sharvill UNQUALIFIED
Kaitlin OstroskySpainAnna Fali PROPOSAL
Aditya KuskoIndiaIvan Magalhaes PROPOSAL
Darci PoquetteCanadaIvan Magalhaes RENEWAL
Mujtaba NickaUnited KingdomIoni Bowcher PROPOSAL
Nicolas IturbideFranceOnyama Limba NEGOTIATION
Wickens NestleArgentinaElwin Sharvill NEW
Salvatore StockhamUnited KingdomElwin Sharvill UNQUALIFIED
Smith GlickUnited KingdomAmy Elsner RENEWAL
Francesco ShinkoJapanOnyama Limba UNQUALIFIED
Darci PoquetteSpainXuxue Feng UNQUALIFIED
Salvatore StockhamGermanyAmy Elsner RENEWAL
Juan WieserAustraliaXuxue Feng PROPOSAL
Octavia MaletBrazilStephen Shaw QUALIFIED
Ivar PaprockiAustraliaElwin Sharvill NEW
Smith GlickCanadaIvan Magalhaes NEW
Maisha RulapaughRussiaIoni Bowcher NEGOTIATION
Faith GillianAustraliaAmy Elsner RENEWAL
Wickens NestleArgentinaIoni Bowcher QUALIFIED
Leja CaldareraCanadaAmy Elsner NEGOTIATION
Murillo MaletIndiaStephen Shaw UNQUALIFIED
Jeanfrancois VenereCanadaIvan Magalhaes QUALIFIED
Cody SaylorsBrazilIvan Magalhaes UNQUALIFIED
James ButtAustraliaBernardo Dominic QUALIFIED
Tony FollerItalyXuxue Feng UNQUALIFIED
Murillo MaletGermanyBernardo Dominic NEGOTIATION
Jefferson SchemmerArgentinaStephen Shaw NEW
Costa DilliardBrazilIoni Bowcher UNQUALIFIED
Smith GlickAustraliaAmy Elsner NEGOTIATION
Silvio SlusarskiRussiaXuxue Feng QUALIFIED
Deepesh ChuiGermanyAmy Elsner RENEWAL
Chavez BriddickJapanAsiya Javayant PROPOSAL
Tony FollerRussiaIoni Bowcher NEGOTIATION
Antonio CaudyRussiaStephen Shaw PROPOSAL
Alejandro PerinRussiaElwin Sharvill NEGOTIATION
Jennifer AmigonCanadaElwin Sharvill PROPOSAL
Leon OldroydBrazilIvan Magalhaes PROPOSAL
Francesco ShinkoAustraliaAnna Fali QUALIFIED
Claire TollnerSpainAnna Fali NEW
Morrow RutaGermanyElwin Sharvill RENEWAL
Kadeem FlosiAustraliaOnyama Limba RENEWAL
Faith GillianJapanAsiya Javayant PROPOSAL
Leon OldroydRussiaOnyama Limba QUALIFIED
Julie StensethArgentinaIvan Magalhaes RENEWAL
Izzy GarufiCanadaAsiya Javayant UNQUALIFIED
Misaki RoysterCanadaAmy Elsner NEW
Jones VocelkaJapanOnyama Limba QUALIFIED
Misaki RoysterJapanStephen Shaw QUALIFIED
Mayumi KolmetzRussiaElwin Sharvill NEW
Horizontal
NameCountryRepresentativeStatus
David DarakjyFranceAsiya Javayant UNQUALIFIED
Ricardo GauchoUnited KingdomAsiya Javayant NEW
Juan WieserUnited KingdomElwin Sharvill QUALIFIED
Johnson SergiUnited KingdomIoni Bowcher PROPOSAL
Francesco ShinkoIndiaAnna Fali PROPOSAL
Munro FerenczCanadaBernardo Dominic NEGOTIATION
Greenwood BologniaRussiaIvan Magalhaes UNQUALIFIED
Alejandro PerinIndiaAnna Fali UNQUALIFIED
Tony FollerJapanAmy Elsner NEGOTIATION
Izzy GarufiBrazilElwin Sharvill RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson SchemmerAustralia2025-09-20Morlong Associates QUALIFIED15Ivan Magalhaes
1001Adams MorascaFrance2025-10-09Chemel, James L Cpa NEGOTIATION69Asiya Javayant
1002Kaitlin OstroskyItaly2025-09-21Truhlar And Truhlar Attys NEGOTIATION39Onyama Limba
1003Aika InouyeAustralia2025-09-21Benton, John B Jr NEW85Anna Fali
1004Johnson SergiJapan2025-09-23Feltz Printing Service NEW60Ivan Magalhaes
1005Costa DilliardAustralia2025-10-05Morlong Associates QUALIFIED87Xuxue Feng
1006Adams MorascaArgentina2025-09-22Chapman, Ross E Esq UNQUALIFIED18Asiya Javayant
1007Costa DilliardCanada2025-10-06Dorl, James J Esq RENEWAL61Bernardo Dominic
1008Faith GillianArgentina2025-10-04King, Christopher A Esq QUALIFIED74Asiya Javayant
1009Maisha RulapaughFrance2025-10-01Feltz Printing Service NEGOTIATION46Bernardo Dominic
1010Wickens NestleCanada2025-09-22Commercial Press NEW91Onyama Limba
1011Aditya KuskoArgentina2025-09-24Morlong Associates PROPOSAL99Stephen Shaw
1012Isabel BowleySpain2025-09-22Chanay, Jeffrey A Esq QUALIFIED86Anna Fali
1013Sinclair WaycottSpain2025-09-26Chanay, Jeffrey A Esq NEW13Elwin Sharvill
1014Francesco ShinkoCanada2025-10-04Feltz Printing Service RENEWAL66Bernardo Dominic
1015Johnson SergiCanada2025-09-27Chanay, Jeffrey A Esq NEGOTIATION35Asiya Javayant
1016Jefferson SchemmerRussia2025-10-13Chapman, Ross E Esq RENEWAL74Ivan Magalhaes
1017Jones VocelkaBrazil2025-09-17Rangoni Of Florence NEGOTIATION31Onyama Limba
1018Claire TollnerCanada2025-10-06Buckley Miller Wright NEGOTIATION56Asiya Javayant
1019Julie StensethArgentina2025-09-26Feiner Bros QUALIFIED72Asiya Javayant
1020Aika InouyeSpain2025-09-29Benton, John B Jr QUALIFIED52Ioni Bowcher
1021Leja CaldareraIndia2025-09-29Morlong Associates RENEWAL83Xuxue Feng
1022David DarakjyGermany2025-10-06Rangoni Of Florence NEGOTIATION55Asiya Javayant
1023Maria MarrierSpain2025-09-30Feltz Printing Service PROPOSAL90Ioni Bowcher
1024Kaitlin OstroskyJapan2025-09-18Dorl, James J Esq PROPOSAL65Xuxue Feng
1025Morrow RutaUnited Kingdom2025-09-19Benton, John B Jr NEW35Asiya Javayant
1026Kadeem FlosiIndia2025-09-15Benton, John B Jr NEGOTIATION41Anna Fali
1027Misaki RoysterFrance2025-10-01Truhlar And Truhlar Attys NEGOTIATION64Stephen Shaw
1028Cody SaylorsGermany2025-09-24Rousseaux, Michael Esq RENEWAL75Bernardo Dominic
1029Jeanfrancois VenereAustralia2025-10-13Feiner Bros NEW96Ioni Bowcher
1030Julie StensethItaly2025-09-28Feltz Printing Service NEW70Elwin Sharvill
1031Murillo MaletSpain2025-09-24Chanay, Jeffrey A Esq RENEWAL18Amy Elsner
1032Octavia MaletBrazil2025-09-28Rangoni Of Florence NEW50Onyama Limba
1033Stacey MacleadAustralia2025-09-28Rousseaux, Michael Esq UNQUALIFIED55Onyama Limba
1034Maisha RulapaughSpain2025-09-24Rousseaux, Michael Esq NEGOTIATION36Ioni Bowcher
1035Leja CaldareraArgentina2025-10-13Rangoni Of Florence PROPOSAL5Anna Fali
1036Smith GlickSpain2025-10-09Chanay, Jeffrey A Esq QUALIFIED59Ivan Magalhaes
1037Darci PoquetteCanada2025-10-05King, Christopher A Esq PROPOSAL23Bernardo Dominic
1038James ButtGermany2025-09-28King, Christopher A Esq UNQUALIFIED58Asiya Javayant
1039Chavez BriddickBrazil2025-09-17Morlong Associates RENEWAL16Ioni Bowcher
1040Mujtaba NickaUnited Kingdom2025-10-11Printing Dimensions QUALIFIED96Xuxue Feng
1041Morrow RutaCanada2025-09-24Morlong Associates QUALIFIED55Bernardo Dominic
1042Clifford RimFrance2025-09-17Chemel, James L Cpa PROPOSAL67Xuxue Feng
1043Mayumi KolmetzSpain2025-09-28Feiner Bros UNQUALIFIED61Ivan Magalhaes
1044Chavez BriddickBrazil2025-09-26Commercial Press NEGOTIATION68Stephen Shaw
1045Rodrigues CampainRussia2025-09-23Morlong Associates NEGOTIATION73Xuxue Feng
1046Cody SaylorsBrazil2025-10-03Rousseaux, Michael Esq NEGOTIATION52Amy Elsner
1047Morrow RutaFrance2025-10-13Chanay, Jeffrey A Esq NEW92Onyama Limba
1048Jones VocelkaBrazil2025-10-09King, Christopher A Esq UNQUALIFIED24Asiya Javayant
1049Ashley DoeIndia2025-09-28Morlong Associates PROPOSAL14Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Jeanfrancois VenereIndiaIvan Magalhaes UNQUALIFIED
Mujtaba NickaRussiaStephen Shaw RENEWAL
Rodrigues CampainAustraliaBernardo Dominic NEGOTIATION
Octavia MaletSpainStephen Shaw UNQUALIFIED
Ricardo GauchoItalyBernardo Dominic QUALIFIED
Leja CaldareraIndiaIvan Magalhaes UNQUALIFIED
Isabel BowleyBrazilXuxue Feng PROPOSAL
Arvin AlbaresItalyBernardo Dominic NEW
Jennifer AmigonIndiaXuxue Feng QUALIFIED
Ricardo GauchoArgentinaAnna Fali UNQUALIFIED
Costa DilliardArgentinaAsiya Javayant UNQUALIFIED
Francesco ShinkoUnited KingdomBernardo Dominic NEW
Maria MarrierItalyIoni Bowcher NEW
Johnson SergiFranceAsiya Javayant NEW
Adams MorascaFranceStephen Shaw RENEWAL
Juan WieserArgentinaStephen Shaw NEGOTIATION
Nicolas IturbideSpainBernardo Dominic RENEWAL
James ButtItalyElwin Sharvill NEGOTIATION
Cody SaylorsCanadaXuxue Feng RENEWAL
Mujtaba NickaJapanAnna Fali RENEWAL
Deepesh ChuiGermanyXuxue Feng RENEWAL
James ButtGermanyAmy Elsner QUALIFIED
Tony FollerIndiaElwin Sharvill UNQUALIFIED
Darci PoquetteIndiaBernardo Dominic UNQUALIFIED
Maisha RulapaughJapanAsiya Javayant NEW
Darci PoquetteSpainIvan Magalhaes PROPOSAL
Silvio SlusarskiCanadaAnna Fali NEGOTIATION
Rodrigues CampainItalyElwin Sharvill QUALIFIED
Faith GillianRussiaAsiya Javayant UNQUALIFIED
Julie StensethGermanyIvan Magalhaes QUALIFIED
Isabel BowleyArgentinaStephen Shaw RENEWAL
Nicolas IturbideFranceElwin Sharvill PROPOSAL
Stacey MacleadBrazilIvan Magalhaes NEGOTIATION
Juan WieserIndiaBernardo Dominic NEGOTIATION
Smith GlickSpainIvan Magalhaes QUALIFIED
Jennifer AmigonJapanElwin Sharvill NEW
Jennifer AmigonBrazilOnyama Limba NEW
Kaitlin OstroskyArgentinaXuxue Feng UNQUALIFIED
Rodrigues CampainGermanyAmy Elsner NEGOTIATION
Mujtaba NickaArgentinaIoni Bowcher UNQUALIFIED
Aditya KuskoGermanyAnna Fali NEGOTIATION
Stacey MacleadUnited KingdomBernardo Dominic PROPOSAL
Wickens NestleRussiaAnna Fali UNQUALIFIED
Stacey MacleadArgentinaElwin Sharvill NEGOTIATION
Tony FollerCanadaIvan Magalhaes PROPOSAL
Francesco ShinkoJapanStephen Shaw NEGOTIATION
Chavez BriddickBrazilXuxue Feng UNQUALIFIED
Johnson SergiRussiaAmy Elsner UNQUALIFIED
Murillo MaletFranceOnyama Limba NEGOTIATION
Deepesh ChuiArgentinaIoni Bowcher RENEWAL
Frozen Columns
Name
Chavez Briddick
Ricardo Gaucho
Munro Ferencz
Jones Vocelka
Antonio Caudy
Murillo Malet
Kadeem Flosi
Mujtaba Nicka
Jones Vocelka
Faith Gillian
Costa Dilliard
Arvin Albares
Francesco Shinko
James Butt
Costa Dilliard
Silvio Slusarski
Misaki Royster
Faith Gillian
Izzy Garufi
Isabel Bowley
Silvio Slusarski
Morrow Ruta
Mujtaba Nicka
Costa Dilliard
Murillo Malet
Julie Stenseth
Darci Poquette
Murillo Malet
Mujtaba Nicka
Smith Glick
Izzy Garufi
Morrow Ruta
Isabel Bowley
Antonio Caudy
Emily Whobrey
Munro Ferencz
Adams Morasca
Octavia Malet
Silvio Slusarski
Johnson Sergi
Sinclair Waycott
Alejandro Perin
Arvin Albares
Aruna Figeroa
Leja Caldarera
Kaitlin Ostrosky
Francesco Shinko
Leon Oldroyd
Ivar Paprocki
Juan Wieser
IdCountryDate
1000Brazil2025-09-24
1001Spain2025-10-04
1002Australia2025-09-29
1003Australia2025-09-16
1004Argentina2025-09-14
1005Italy2025-09-23
1006Australia2025-09-17
1007Canada2025-09-15
1008Italy2025-09-19
1009Australia2025-09-29
1010Japan2025-09-20
1011Italy2025-10-12
1012Brazil2025-09-15
1013Spain2025-09-14
1014Russia2025-09-20
1015Argentina2025-09-24
1016Russia2025-09-30
1017Italy2025-09-30
1018Spain2025-09-21
1019Japan2025-09-25
1020Canada2025-10-13
1021Argentina2025-09-26
1022Germany2025-09-29
1023United Kingdom2025-09-27
1024Argentina2025-10-09
1025Canada2025-09-21
1026Australia2025-10-06
1027Spain2025-10-10
1028Russia2025-09-22
1029Argentina2025-10-11
1030Australia2025-09-20
1031Canada2025-09-23
1032Brazil2025-09-21
1033Argentina2025-10-11
1034Australia2025-09-30
1035Spain2025-10-13
1036Japan2025-09-19
1037United Kingdom2025-09-21
1038Australia2025-09-28
1039France2025-09-25
1040Japan2025-09-28
1041Australia2025-09-14
1042Argentina2025-09-14
1043Canada2025-09-25
1044Australia2025-09-17
1045Spain2025-09-30
1046Argentina2025-09-24
1047Argentina2025-09-24
1048Japan2025-09-18
1049Australia2025-09-14

On-Demand Data

NameIdCountryDate
Alejandro Perin1000Spain2025-10-13
Aika Inouye1001Australia2025-10-12
Rodrigues Campain1002Canada2025-09-27
Aditya Kusko1003Germany2025-09-21
Emily Whobrey1004France2025-10-08
Alejandro Perin1005Germany2025-09-29
Ricardo Gaucho1006France2025-09-28
Jeanfrancois Venere1007Canada2025-09-27
Alejandro Perin1008Australia2025-10-12
James Butt1009Argentina2025-10-11
Kadeem Flosi1010Brazil2025-10-13
Tony Foller1011Argentina2025-09-14
Johnson Sergi1012France2025-09-26
Aruna Figeroa1013United Kingdom2025-10-10
Ricardo Gaucho1014Australia2025-10-13
Kaitlin Ostrosky1015Brazil2025-09-22
Julie Stenseth1016Australia2025-09-18
Cody Saylors1017Italy2025-10-01
Stacey Maclead1018Japan2025-10-04
Stacey Maclead1019Italy2025-09-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Tony FollerUnited KingdomElwin Sharvill PROPOSAL
Francesco ShinkoRussiaBernardo Dominic PROPOSAL
Murillo MaletCanadaBernardo Dominic NEW
Alejandro PerinRussiaAsiya Javayant PROPOSAL
Munro FerenczArgentinaAsiya Javayant RENEWAL
Francesco ShinkoRussiaIoni Bowcher QUALIFIED
Jennifer AmigonArgentinaIvan Magalhaes RENEWAL
Leon OldroydBrazilStephen Shaw RENEWAL
Emily WhobreyJapanAnna Fali RENEWAL
Ashley DoeCanadaOnyama Limba QUALIFIED
Salvatore StockhamRussiaAsiya Javayant PROPOSAL
Cody SaylorsUnited KingdomBernardo Dominic RENEWAL
Nicolas IturbideAustraliaIoni Bowcher NEGOTIATION
Mayumi KolmetzUnited KingdomAsiya Javayant PROPOSAL
Smith GlickFranceXuxue Feng NEGOTIATION
Misaki RoysterArgentinaOnyama Limba UNQUALIFIED
Adams MorascaSpainAmy Elsner NEGOTIATION
Aika InouyeGermanyBernardo Dominic NEW
Darci PoquetteSpainStephen Shaw QUALIFIED
Faith GillianIndiaIoni Bowcher QUALIFIED
Chavez BriddickRussiaIoni Bowcher NEGOTIATION
Salvatore StockhamGermanyBernardo Dominic RENEWAL
Darci PoquetteUnited KingdomIoni Bowcher NEGOTIATION
Leon OldroydIndiaIoni Bowcher PROPOSAL
Aika InouyeFranceElwin Sharvill NEGOTIATION
Aditya KuskoSpainElwin Sharvill NEW
Claire TollnerJapanIoni Bowcher UNQUALIFIED
Salvatore StockhamFranceAsiya Javayant NEW
Isabel BowleyBrazilAsiya Javayant NEGOTIATION
Julie StensethJapanBernardo Dominic NEGOTIATION
Ashley DoeSpainIvan Magalhaes NEGOTIATION
Adams MorascaFranceBernardo Dominic QUALIFIED
Claire TollnerJapanOnyama Limba UNQUALIFIED
Izzy GarufiSpainBernardo Dominic NEW
Alejandro PerinSpainAsiya Javayant NEGOTIATION
Juan WieserSpainAmy Elsner NEGOTIATION
Mujtaba NickaSpainElwin Sharvill NEGOTIATION
Octavia MaletUnited KingdomIoni Bowcher QUALIFIED
Stacey MacleadArgentinaElwin Sharvill RENEWAL
Misaki RoysterBrazilAsiya Javayant 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>