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
Morrow RutaItalyOnyama Limba PROPOSAL
David DarakjyArgentinaIoni Bowcher NEGOTIATION
Johnson SergiJapanAsiya Javayant PROPOSAL
Maria MarrierCanadaElwin Sharvill NEGOTIATION
Ashley DoeGermanyElwin Sharvill PROPOSAL
Leja CaldareraItalyAsiya Javayant NEGOTIATION
Jeanfrancois VenereAustraliaStephen Shaw PROPOSAL
Greenwood BologniaItalyOnyama Limba QUALIFIED
Jefferson SchemmerRussiaIoni Bowcher QUALIFIED
Chavez BriddickJapanAmy Elsner NEW
Aruna FigeroaGermanyOnyama Limba PROPOSAL
Murillo MaletBrazilAmy Elsner QUALIFIED
Arvin AlbaresJapanStephen Shaw QUALIFIED
Julie StensethFranceIoni Bowcher QUALIFIED
Leon OldroydIndiaIoni Bowcher NEGOTIATION
Stacey MacleadUnited KingdomAnna Fali UNQUALIFIED
David DarakjyRussiaAsiya Javayant NEGOTIATION
Costa DilliardGermanyAsiya Javayant QUALIFIED
Munro FerenczUnited KingdomAmy Elsner RENEWAL
Faith GillianAustraliaIoni Bowcher NEW
Aruna FigeroaBrazilBernardo Dominic UNQUALIFIED
Aditya KuskoArgentinaBernardo Dominic NEGOTIATION
Jones VocelkaArgentinaAnna Fali NEW
Silvio SlusarskiIndiaIvan Magalhaes PROPOSAL
Munro FerenczCanadaAmy Elsner UNQUALIFIED
Adams MorascaJapanAmy Elsner NEW
Rodrigues CampainCanadaIvan Magalhaes NEW
Salvatore StockhamBrazilAnna Fali NEGOTIATION
Wickens NestleRussiaOnyama Limba RENEWAL
Rodrigues CampainArgentinaStephen Shaw RENEWAL
Leja CaldareraAustraliaIvan Magalhaes UNQUALIFIED
Claire TollnerRussiaAmy Elsner NEGOTIATION
Claire TollnerItalyAsiya Javayant QUALIFIED
David DarakjyFranceAsiya Javayant PROPOSAL
Mayumi KolmetzRussiaBernardo Dominic QUALIFIED
Sinclair WaycottSpainOnyama Limba QUALIFIED
Izzy GarufiArgentinaOnyama Limba PROPOSAL
Maisha RulapaughAustraliaBernardo Dominic NEW
Aruna FigeroaArgentinaElwin Sharvill UNQUALIFIED
Ricardo GauchoIndiaBernardo Dominic PROPOSAL
Mujtaba NickaGermanyOnyama Limba NEW
Leon OldroydUnited KingdomIoni Bowcher NEW
Stacey MacleadArgentinaAsiya Javayant NEGOTIATION
Izzy GarufiSpainIoni Bowcher PROPOSAL
Tony FollerItalyOnyama Limba PROPOSAL
Antonio CaudyBrazilOnyama Limba NEW
Ivar PaprockiUnited KingdomOnyama Limba UNQUALIFIED
Nicolas IturbideAustraliaBernardo Dominic NEW
Emily WhobreyRussiaIvan Magalhaes PROPOSAL
Ivar PaprockiJapanIvan Magalhaes RENEWAL
Horizontal
NameCountryRepresentativeStatus
Nicolas IturbideUnited KingdomStephen Shaw RENEWAL
Rodrigues CampainRussiaElwin Sharvill NEGOTIATION
Salvatore StockhamSpainAmy Elsner UNQUALIFIED
Octavia MaletJapanIvan Magalhaes UNQUALIFIED
Costa DilliardBrazilOnyama Limba UNQUALIFIED
Maisha RulapaughArgentinaIoni Bowcher QUALIFIED
Salvatore StockhamArgentinaBernardo Dominic UNQUALIFIED
Clifford RimJapanIvan Magalhaes PROPOSAL
Leja CaldareraIndiaBernardo Dominic RENEWAL
Sinclair WaycottCanadaIvan Magalhaes PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Sinclair WaycottRussia2026-04-17King, Christopher A Esq UNQUALIFIED65Onyama Limba
1001Ivar PaprockiIndia2026-04-28Morlong Associates NEGOTIATION44Xuxue Feng
1002Rodrigues CampainGermany2026-04-09Feltz Printing Service QUALIFIED87Ivan Magalhaes
1003Darci PoquetteItaly2026-04-19Chapman, Ross E Esq NEW18Asiya Javayant
1004Tony FollerGermany2026-05-04Printing Dimensions RENEWAL7Ivan Magalhaes
1005Mayumi KolmetzItaly2026-04-25Dorl, James J Esq PROPOSAL79Bernardo Dominic
1006Jones VocelkaJapan2026-04-22Truhlar And Truhlar Attys NEGOTIATION43Asiya Javayant
1007Mujtaba NickaBrazil2026-04-18Morlong Associates NEW74Amy Elsner
1008Adams MorascaSpain2026-04-13King, Christopher A Esq PROPOSAL6Ivan Magalhaes
1009James ButtBrazil2026-05-03Truhlar And Truhlar Attys RENEWAL74Elwin Sharvill
1010Octavia MaletIndia2026-04-20Dorl, James J Esq RENEWAL60Stephen Shaw
1011Jefferson SchemmerGermany2026-05-04Rousseaux, Michael Esq RENEWAL57Ioni Bowcher
1012Kadeem FlosiArgentina2026-04-21Feltz Printing Service RENEWAL66Anna Fali
1013Ricardo GauchoCanada2026-04-27Chanay, Jeffrey A Esq PROPOSAL90Onyama Limba
1014Tony FollerIndia2026-04-19Buckley Miller Wright QUALIFIED16Bernardo Dominic
1015Murillo MaletArgentina2026-04-24Rousseaux, Michael Esq UNQUALIFIED54Stephen Shaw
1016Salvatore StockhamGermany2026-04-26Chemel, James L Cpa QUALIFIED57Anna Fali
1017Leja CaldareraArgentina2026-04-13Dorl, James J Esq UNQUALIFIED21Ivan Magalhaes
1018Kadeem FlosiUnited Kingdom2026-04-25Benton, John B Jr UNQUALIFIED18Asiya Javayant
1019Leon OldroydJapan2026-04-05Printing Dimensions UNQUALIFIED15Xuxue Feng
1020Emily WhobreyArgentina2026-04-17Printing Dimensions NEW88Ioni Bowcher
1021Alejandro PerinSpain2026-05-04Commercial Press RENEWAL50Stephen Shaw
1022Jennifer AmigonArgentina2026-05-03Rangoni Of Florence NEGOTIATION21Elwin Sharvill
1023Munro FerenczGermany2026-04-08Benton, John B Jr QUALIFIED38Ioni Bowcher
1024Octavia MaletIndia2026-05-03Chanay, Jeffrey A Esq NEW3Ivan Magalhaes
1025Maria MarrierFrance2026-04-28Chapman, Ross E Esq NEW82Xuxue Feng
1026Francesco ShinkoCanada2026-04-19Truhlar And Truhlar Attys PROPOSAL32Onyama Limba
1027Antonio CaudyCanada2026-04-09Buckley Miller Wright RENEWAL68Ivan Magalhaes
1028Mujtaba NickaBrazil2026-04-16Chapman, Ross E Esq UNQUALIFIED2Elwin Sharvill
1029Octavia MaletFrance2026-04-20Printing Dimensions NEGOTIATION15Ivan Magalhaes
1030Faith GillianGermany2026-04-18Commercial Press NEGOTIATION29Elwin Sharvill
1031Emily WhobreyBrazil2026-04-20Truhlar And Truhlar Attys RENEWAL85Bernardo Dominic
1032Jennifer AmigonUnited Kingdom2026-04-16Feiner Bros NEW23Xuxue Feng
1033Deepesh ChuiFrance2026-04-20Chanay, Jeffrey A Esq QUALIFIED74Xuxue Feng
1034Smith GlickJapan2026-05-02Feltz Printing Service NEW67Elwin Sharvill
1035Octavia MaletAustralia2026-04-14Rousseaux, Michael Esq NEW59Stephen Shaw
1036Wickens NestleJapan2026-04-14Benton, John B Jr NEW29Anna Fali
1037Morrow RutaCanada2026-04-24Chanay, Jeffrey A Esq NEGOTIATION59Onyama Limba
1038Jennifer AmigonRussia2026-04-27Buckley Miller Wright PROPOSAL84Xuxue Feng
1039David DarakjyIndia2026-05-04Buckley Miller Wright NEGOTIATION64Onyama Limba
1040David DarakjyArgentina2026-04-19Buckley Miller Wright NEGOTIATION57Stephen Shaw
1041Ashley DoeBrazil2026-04-25Morlong Associates NEGOTIATION90Xuxue Feng
1042Smith GlickRussia2026-04-21Rangoni Of Florence RENEWAL19Xuxue Feng
1043Murillo MaletIndia2026-04-29Chapman, Ross E Esq PROPOSAL58Amy Elsner
1044Morrow RutaArgentina2026-04-25Chemel, James L Cpa PROPOSAL15Bernardo Dominic
1045Aditya KuskoItaly2026-04-29King, Christopher A Esq RENEWAL85Stephen Shaw
1046Jennifer AmigonFrance2026-04-25King, Christopher A Esq NEGOTIATION68Bernardo Dominic
1047Costa DilliardRussia2026-04-17Chanay, Jeffrey A Esq QUALIFIED29Ivan Magalhaes
1048Chavez BriddickIndia2026-05-02Chapman, Ross E Esq QUALIFIED52Asiya Javayant
1049Clifford RimSpain2026-05-03Printing Dimensions RENEWAL15Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Izzy GarufiBrazilBernardo Dominic NEGOTIATION
Kaitlin OstroskyUnited KingdomAmy Elsner PROPOSAL
Kaitlin OstroskyCanadaXuxue Feng QUALIFIED
Clifford RimArgentinaElwin Sharvill NEW
Ricardo GauchoUnited KingdomIoni Bowcher PROPOSAL
Misaki RoysterRussiaXuxue Feng RENEWAL
Costa DilliardRussiaIoni Bowcher NEGOTIATION
Jones VocelkaCanadaElwin Sharvill PROPOSAL
Julie StensethUnited KingdomBernardo Dominic UNQUALIFIED
Jefferson SchemmerGermanyIoni Bowcher UNQUALIFIED
Jennifer AmigonIndiaBernardo Dominic QUALIFIED
Misaki RoysterBrazilAmy Elsner UNQUALIFIED
Jennifer AmigonBrazilIvan Magalhaes NEGOTIATION
Claire TollnerAustraliaAsiya Javayant UNQUALIFIED
Isabel BowleySpainAnna Fali NEGOTIATION
Costa DilliardFranceAmy Elsner UNQUALIFIED
Jones VocelkaArgentinaAmy Elsner NEGOTIATION
Maisha RulapaughJapanAsiya Javayant PROPOSAL
Izzy GarufiAustraliaXuxue Feng UNQUALIFIED
Nicolas IturbideUnited KingdomOnyama Limba NEW
Munro FerenczArgentinaElwin Sharvill NEW
Clifford RimAustraliaIvan Magalhaes UNQUALIFIED
Rodrigues CampainIndiaAmy Elsner PROPOSAL
Izzy GarufiGermanyIoni Bowcher QUALIFIED
Salvatore StockhamUnited KingdomBernardo Dominic UNQUALIFIED
Octavia MaletBrazilAmy Elsner QUALIFIED
Kadeem FlosiRussiaAmy Elsner QUALIFIED
Octavia MaletIndiaAnna Fali UNQUALIFIED
Ivar PaprockiUnited KingdomIoni Bowcher RENEWAL
Maisha RulapaughArgentinaXuxue Feng QUALIFIED
Antonio CaudyIndiaXuxue Feng PROPOSAL
Leon OldroydCanadaAsiya Javayant RENEWAL
Ashley DoeIndiaXuxue Feng NEGOTIATION
Rodrigues CampainFranceElwin Sharvill PROPOSAL
Murillo MaletFranceElwin Sharvill NEGOTIATION
Maria MarrierIndiaIvan Magalhaes PROPOSAL
Adams MorascaGermanyXuxue Feng NEGOTIATION
Cody SaylorsRussiaAsiya Javayant RENEWAL
Alejandro PerinFranceStephen Shaw UNQUALIFIED
Deepesh ChuiBrazilOnyama Limba QUALIFIED
Rodrigues CampainUnited KingdomAsiya Javayant PROPOSAL
Izzy GarufiAustraliaBernardo Dominic QUALIFIED
Aika InouyeRussiaElwin Sharvill NEGOTIATION
Munro FerenczSpainXuxue Feng PROPOSAL
Jeanfrancois VenereArgentinaAmy Elsner PROPOSAL
Alejandro PerinRussiaElwin Sharvill UNQUALIFIED
Kaitlin OstroskyJapanAsiya Javayant NEGOTIATION
Cody SaylorsIndiaStephen Shaw NEGOTIATION
Kaitlin OstroskySpainIoni Bowcher RENEWAL
Salvatore StockhamGermanyIoni Bowcher RENEWAL
Frozen Columns
Name
Claire Tollner
Chavez Briddick
Nicolas Iturbide
Kaitlin Ostrosky
Smith Glick
Chavez Briddick
Maisha Rulapaugh
Octavia Malet
Ivar Paprocki
Maisha Rulapaugh
Wickens Nestle
Stacey Maclead
Darci Poquette
David Darakjy
Antonio Caudy
Jeanfrancois Venere
Tony Foller
Nicolas Iturbide
Claire Tollner
Isabel Bowley
Jeanfrancois Venere
Aruna Figeroa
Leja Caldarera
Darci Poquette
Clifford Rim
Jennifer Amigon
Jeanfrancois Venere
Salvatore Stockham
Nicolas Iturbide
Jones Vocelka
Ivar Paprocki
Ricardo Gaucho
Wickens Nestle
Johnson Sergi
Cody Saylors
Munro Ferencz
Isabel Bowley
Silvio Slusarski
Kadeem Flosi
Mujtaba Nicka
Rodrigues Campain
Leon Oldroyd
Aika Inouye
Clifford Rim
Faith Gillian
Rodrigues Campain
Johnson Sergi
Isabel Bowley
Adams Morasca
Jones Vocelka
IdCountryDate
1000Italy2026-04-15
1001Japan2026-04-20
1002Spain2026-04-26
1003Brazil2026-04-16
1004Spain2026-04-21
1005Japan2026-04-29
1006Argentina2026-04-20
1007Italy2026-04-29
1008Germany2026-04-08
1009Italy2026-05-01
1010United Kingdom2026-04-18
1011India2026-04-13
1012Australia2026-05-01
1013United Kingdom2026-04-20
1014Brazil2026-04-24
1015Spain2026-05-02
1016Japan2026-04-26
1017Russia2026-04-23
1018Argentina2026-04-30
1019Australia2026-04-06
1020Italy2026-04-12
1021Australia2026-04-09
1022Germany2026-05-03
1023Australia2026-04-05
1024Canada2026-04-07
1025Russia2026-04-10
1026Spain2026-04-12
1027India2026-04-07
1028Spain2026-04-11
1029United Kingdom2026-04-05
1030Germany2026-04-12
1031France2026-04-22
1032United Kingdom2026-04-19
1033Canada2026-04-15
1034Canada2026-04-28
1035Australia2026-05-04
1036Russia2026-04-28
1037Spain2026-04-15
1038Italy2026-04-10
1039Italy2026-04-10
1040United Kingdom2026-05-03
1041Italy2026-04-05
1042Russia2026-04-24
1043Japan2026-04-26
1044Japan2026-04-22
1045Italy2026-04-16
1046Italy2026-04-13
1047United Kingdom2026-05-02
1048Russia2026-04-19
1049Australia2026-04-28

On-Demand Data

NameIdCountryDate
Leja Caldarera1000Japan2026-04-19
Mayumi Kolmetz1001Italy2026-04-06
David Darakjy1002Japan2026-04-26
Cody Saylors1003Italy2026-04-10
Ivar Paprocki1004United Kingdom2026-04-16
Cody Saylors1005Australia2026-04-30
Tony Foller1006Australia2026-04-22
Stacey Maclead1007Russia2026-04-29
Silvio Slusarski1008Spain2026-04-30
Johnson Sergi1009Canada2026-04-12
Murillo Malet1010India2026-04-12
Antonio Caudy1011Spain2026-04-08
Izzy Garufi1012Italy2026-04-25
Darci Poquette1013Japan2026-04-18
Leja Caldarera1014Spain2026-05-03
Francesco Shinko1015Germany2026-04-13
Kaitlin Ostrosky1016India2026-05-03
Alejandro Perin1017Japan2026-04-12
Maria Marrier1018Germany2026-04-14
Ashley Doe1019Germany2026-04-05
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Francesco ShinkoArgentinaOnyama Limba UNQUALIFIED
Kaitlin OstroskyItalyIvan Magalhaes UNQUALIFIED
Clifford RimArgentinaOnyama Limba NEGOTIATION
Misaki RoysterAustraliaIvan Magalhaes RENEWAL
Aruna FigeroaRussiaIoni Bowcher UNQUALIFIED
Rodrigues CampainGermanyIoni Bowcher NEGOTIATION
Faith GillianBrazilAmy Elsner PROPOSAL
Jeanfrancois VenereJapanOnyama Limba UNQUALIFIED
Costa DilliardGermanyAnna Fali QUALIFIED
Julie StensethIndiaBernardo Dominic UNQUALIFIED
Nicolas IturbideIndiaAmy Elsner PROPOSAL
Aika InouyeGermanyIvan Magalhaes NEGOTIATION
Aditya KuskoUnited KingdomElwin Sharvill UNQUALIFIED
Ivar PaprockiSpainIoni Bowcher NEGOTIATION
Izzy GarufiBrazilIoni Bowcher PROPOSAL
Faith GillianItalyBernardo Dominic NEGOTIATION
Antonio CaudyIndiaAsiya Javayant UNQUALIFIED
Deepesh ChuiIndiaBernardo Dominic NEW
Kadeem FlosiSpainAnna Fali NEGOTIATION
Ashley DoeSpainXuxue Feng NEGOTIATION
Francesco ShinkoIndiaOnyama Limba RENEWAL
Jennifer AmigonBrazilIvan Magalhaes NEGOTIATION
James ButtFranceXuxue Feng NEGOTIATION
Cody SaylorsUnited KingdomIoni Bowcher NEW
Arvin AlbaresBrazilElwin Sharvill PROPOSAL
Kaitlin OstroskyAustraliaElwin Sharvill NEW
Deepesh ChuiAustraliaStephen Shaw QUALIFIED
Sinclair WaycottAustraliaXuxue Feng QUALIFIED
Claire TollnerAustraliaIvan Magalhaes QUALIFIED
Murillo MaletAustraliaAnna Fali NEW
Francesco ShinkoAustraliaAmy Elsner NEW
Salvatore StockhamAustraliaOnyama Limba QUALIFIED
Costa DilliardSpainOnyama Limba QUALIFIED
Jeanfrancois VenereUnited KingdomIvan Magalhaes RENEWAL
Juan WieserRussiaAmy Elsner NEGOTIATION
Morrow RutaBrazilIvan Magalhaes UNQUALIFIED
Mujtaba NickaItalyStephen Shaw NEW
Faith GillianBrazilBernardo Dominic PROPOSAL
Jennifer AmigonUnited KingdomAsiya Javayant PROPOSAL
Ashley DoeAustraliaAsiya 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>