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
Alejandro PerinItalyAnna Fali RENEWAL
Isabel BowleyIndiaStephen Shaw UNQUALIFIED
Alejandro PerinFranceIvan Magalhaes NEGOTIATION
Octavia MaletFranceAsiya Javayant UNQUALIFIED
Misaki RoysterItalyElwin Sharvill UNQUALIFIED
Cody SaylorsJapanElwin Sharvill QUALIFIED
Sinclair WaycottIndiaAmy Elsner QUALIFIED
Alejandro PerinBrazilElwin Sharvill QUALIFIED
Leja CaldareraAustraliaIvan Magalhaes RENEWAL
Salvatore StockhamUnited KingdomElwin Sharvill NEGOTIATION
Octavia MaletBrazilOnyama Limba QUALIFIED
Deepesh ChuiUnited KingdomOnyama Limba NEGOTIATION
Ivar PaprockiArgentinaElwin Sharvill UNQUALIFIED
Kaitlin OstroskyItalyBernardo Dominic RENEWAL
Costa DilliardGermanyAmy Elsner NEW
Claire TollnerJapanBernardo Dominic UNQUALIFIED
Sinclair WaycottBrazilOnyama Limba QUALIFIED
Kaitlin OstroskyUnited KingdomAmy Elsner NEGOTIATION
Jefferson SchemmerAustraliaElwin Sharvill PROPOSAL
Jeanfrancois VenereIndiaIoni Bowcher PROPOSAL
Antonio CaudyAustraliaOnyama Limba PROPOSAL
Arvin AlbaresUnited KingdomIvan Magalhaes NEGOTIATION
Octavia MaletAustraliaAmy Elsner NEGOTIATION
Jefferson SchemmerArgentinaStephen Shaw NEW
Aditya KuskoCanadaIvan Magalhaes QUALIFIED
Antonio CaudyIndiaStephen Shaw PROPOSAL
Arvin AlbaresJapanElwin Sharvill NEW
Maria MarrierRussiaAsiya Javayant QUALIFIED
Kadeem FlosiRussiaOnyama Limba UNQUALIFIED
Leon OldroydBrazilAnna Fali PROPOSAL
Aditya KuskoCanadaIvan Magalhaes QUALIFIED
Izzy GarufiSpainAmy Elsner NEGOTIATION
Julie StensethIndiaAnna Fali RENEWAL
Kadeem FlosiBrazilIoni Bowcher QUALIFIED
Alejandro PerinCanadaXuxue Feng PROPOSAL
Ivar PaprockiJapanAnna Fali UNQUALIFIED
Kadeem FlosiIndiaIvan Magalhaes UNQUALIFIED
Smith GlickBrazilIvan Magalhaes PROPOSAL
Silvio SlusarskiIndiaAnna Fali PROPOSAL
Adams MorascaUnited KingdomOnyama Limba UNQUALIFIED
Deepesh ChuiAustraliaIvan Magalhaes NEGOTIATION
Stacey MacleadUnited KingdomAmy Elsner RENEWAL
Smith GlickFranceStephen Shaw NEW
Juan WieserBrazilAsiya Javayant NEW
Leon OldroydGermanyBernardo Dominic NEW
Salvatore StockhamBrazilAmy Elsner QUALIFIED
Isabel BowleyJapanAnna Fali NEW
Johnson SergiArgentinaIoni Bowcher NEW
Arvin AlbaresCanadaOnyama Limba RENEWAL
Octavia MaletBrazilBernardo Dominic NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Kadeem FlosiCanadaIoni Bowcher UNQUALIFIED
Emily WhobreyAustraliaElwin Sharvill RENEWAL
Octavia MaletRussiaElwin Sharvill NEGOTIATION
Tony FollerFranceAmy Elsner PROPOSAL
Chavez BriddickArgentinaAmy Elsner RENEWAL
Kaitlin OstroskyGermanyOnyama Limba NEGOTIATION
Leja CaldareraCanadaElwin Sharvill UNQUALIFIED
Ashley DoeCanadaStephen Shaw UNQUALIFIED
Emily WhobreyUnited KingdomElwin Sharvill NEGOTIATION
Smith GlickUnited KingdomXuxue Feng NEGOTIATION
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Maria MarrierArgentina2026-05-04Feltz Printing Service PROPOSAL62Anna Fali
1001Jefferson SchemmerGermany2026-05-15Printing Dimensions RENEWAL79Elwin Sharvill
1002Ashley DoeUnited Kingdom2026-05-01Commercial Press RENEWAL97Ivan Magalhaes
1003Isabel BowleyCanada2026-05-09Feiner Bros NEW49Asiya Javayant
1004Deepesh ChuiCanada2026-04-17Chapman, Ross E Esq NEW20Ivan Magalhaes
1005Emily WhobreyIndia2026-05-11Printing Dimensions NEW35Ioni Bowcher
1006James ButtBrazil2026-04-18Rangoni Of Florence NEW9Elwin Sharvill
1007Adams MorascaArgentina2026-05-11Benton, John B Jr NEGOTIATION89Amy Elsner
1008Rodrigues CampainCanada2026-05-02Buckley Miller Wright NEGOTIATION32Onyama Limba
1009Silvio SlusarskiFrance2026-04-28King, Christopher A Esq UNQUALIFIED16Ioni Bowcher
1010David DarakjyIndia2026-04-16Feiner Bros PROPOSAL96Onyama Limba
1011Clifford RimUnited Kingdom2026-05-01Rangoni Of Florence NEW74Ivan Magalhaes
1012Darci PoquetteUnited Kingdom2026-04-18Feltz Printing Service NEGOTIATION61Elwin Sharvill
1013Salvatore StockhamFrance2026-04-27Buckley Miller Wright UNQUALIFIED31Bernardo Dominic
1014Munro FerenczBrazil2026-05-06Dorl, James J Esq UNQUALIFIED86Ioni Bowcher
1015Misaki RoysterItaly2026-05-08Chemel, James L Cpa QUALIFIED29Amy Elsner
1016Mujtaba NickaGermany2026-04-28Truhlar And Truhlar Attys QUALIFIED10Elwin Sharvill
1017Jeanfrancois VenereJapan2026-04-30Commercial Press QUALIFIED34Bernardo Dominic
1018Jennifer AmigonAustralia2026-04-27Truhlar And Truhlar Attys QUALIFIED20Ioni Bowcher
1019Isabel BowleyBrazil2026-04-19Printing Dimensions UNQUALIFIED29Anna Fali
1020Salvatore StockhamFrance2026-04-26Feltz Printing Service QUALIFIED31Amy Elsner
1021Ricardo GauchoCanada2026-05-10Rousseaux, Michael Esq QUALIFIED45Amy Elsner
1022Octavia MaletIndia2026-05-01Rangoni Of Florence UNQUALIFIED24Onyama Limba
1023Jennifer AmigonBrazil2026-04-29Dorl, James J Esq PROPOSAL1Asiya Javayant
1024Aditya KuskoFrance2026-04-30Truhlar And Truhlar Attys QUALIFIED94Ioni Bowcher
1025Murillo MaletSpain2026-05-07Commercial Press PROPOSAL97Ioni Bowcher
1026Rodrigues CampainSpain2026-05-11King, Christopher A Esq NEGOTIATION21Xuxue Feng
1027Jeanfrancois VenereIndia2026-05-13Chanay, Jeffrey A Esq NEGOTIATION40Asiya Javayant
1028Ivar PaprockiUnited Kingdom2026-05-14Chapman, Ross E Esq NEW38Anna Fali
1029Arvin AlbaresSpain2026-05-11Rangoni Of Florence UNQUALIFIED78Onyama Limba
1030Julie StensethIndia2026-04-30Commercial Press PROPOSAL92Anna Fali
1031Greenwood BologniaArgentina2026-04-30Truhlar And Truhlar Attys PROPOSAL88Ivan Magalhaes
1032Ivar PaprockiArgentina2026-05-04Chapman, Ross E Esq PROPOSAL94Anna Fali
1033Aika InouyeRussia2026-05-13Buckley Miller Wright UNQUALIFIED16Onyama Limba
1034Antonio CaudyAustralia2026-04-17Chapman, Ross E Esq NEGOTIATION69Onyama Limba
1035Ricardo GauchoFrance2026-04-30Buckley Miller Wright NEW62Anna Fali
1036Jefferson SchemmerIndia2026-04-20Chapman, Ross E Esq NEW25Asiya Javayant
1037Emily WhobreyCanada2026-04-26Chanay, Jeffrey A Esq UNQUALIFIED78Elwin Sharvill
1038Murillo MaletCanada2026-05-07Buckley Miller Wright UNQUALIFIED39Stephen Shaw
1039Adams MorascaJapan2026-05-03Rangoni Of Florence NEGOTIATION46Xuxue Feng
1040Misaki RoysterSpain2026-05-04Morlong Associates UNQUALIFIED24Onyama Limba
1041Mujtaba NickaJapan2026-04-26Chanay, Jeffrey A Esq QUALIFIED23Elwin Sharvill
1042Jefferson SchemmerAustralia2026-04-24Dorl, James J Esq PROPOSAL11Ioni Bowcher
1043Darci PoquetteUnited Kingdom2026-05-14Dorl, James J Esq PROPOSAL82Amy Elsner
1044Munro FerenczIndia2026-04-25Morlong Associates NEGOTIATION53Bernardo Dominic
1045Antonio CaudyArgentina2026-05-01Truhlar And Truhlar Attys NEW3Asiya Javayant
1046Jennifer AmigonFrance2026-04-25Dorl, James J Esq RENEWAL97Stephen Shaw
1047Ivar PaprockiSpain2026-05-08Truhlar And Truhlar Attys NEW24Onyama Limba
1048Jones VocelkaIndia2026-04-30Printing Dimensions UNQUALIFIED12Ivan Magalhaes
1049Cody SaylorsArgentina2026-04-25Chemel, James L Cpa QUALIFIED20Asiya Javayant
Frozen Rows
NameCountryRepresentativeStatus
Clifford RimFranceIvan Magalhaes PROPOSAL
Jefferson SchemmerRussiaXuxue Feng NEW
Claire TollnerJapanAmy Elsner QUALIFIED
Jeanfrancois VenereIndiaOnyama Limba QUALIFIED
Darci PoquetteJapanAmy Elsner UNQUALIFIED
Emily WhobreyGermanyElwin Sharvill NEW
Wickens NestleRussiaAsiya Javayant NEW
James ButtAustraliaBernardo Dominic PROPOSAL
Tony FollerItalyElwin Sharvill RENEWAL
Maria MarrierIndiaAnna Fali QUALIFIED
Johnson SergiIndiaAmy Elsner PROPOSAL
Arvin AlbaresSpainElwin Sharvill PROPOSAL
Ivar PaprockiBrazilXuxue Feng QUALIFIED
Maria MarrierRussiaAsiya Javayant UNQUALIFIED
Adams MorascaBrazilAmy Elsner UNQUALIFIED
Jefferson SchemmerCanadaBernardo Dominic NEGOTIATION
Antonio CaudyUnited KingdomAsiya Javayant NEGOTIATION
Faith GillianItalyStephen Shaw PROPOSAL
Francesco ShinkoItalyXuxue Feng QUALIFIED
Jefferson SchemmerJapanIvan Magalhaes PROPOSAL
Rodrigues CampainGermanyAsiya Javayant NEW
Wickens NestleUnited KingdomAsiya Javayant RENEWAL
Jeanfrancois VenereIndiaIoni Bowcher NEW
Mayumi KolmetzSpainAsiya Javayant PROPOSAL
Ashley DoeFranceBernardo Dominic NEW
Jones VocelkaArgentinaOnyama Limba PROPOSAL
Darci PoquetteArgentinaIoni Bowcher RENEWAL
Claire TollnerAustraliaOnyama Limba UNQUALIFIED
Juan WieserCanadaElwin Sharvill UNQUALIFIED
Aika InouyeUnited KingdomElwin Sharvill NEGOTIATION
Mayumi KolmetzBrazilBernardo Dominic PROPOSAL
Jones VocelkaCanadaIvan Magalhaes PROPOSAL
Costa DilliardJapanIvan Magalhaes NEW
Clifford RimItalyOnyama Limba NEGOTIATION
Antonio CaudyArgentinaBernardo Dominic UNQUALIFIED
Jennifer AmigonArgentinaIoni Bowcher PROPOSAL
Octavia MaletIndiaAmy Elsner RENEWAL
Julie StensethSpainXuxue Feng PROPOSAL
Sinclair WaycottAustraliaOnyama Limba PROPOSAL
Sinclair WaycottFranceAmy Elsner QUALIFIED
James ButtGermanyAsiya Javayant UNQUALIFIED
Ivar PaprockiIndiaElwin Sharvill NEW
Jefferson SchemmerIndiaElwin Sharvill NEGOTIATION
Alejandro PerinBrazilAsiya Javayant NEGOTIATION
Johnson SergiArgentinaIoni Bowcher QUALIFIED
Julie StensethSpainXuxue Feng QUALIFIED
Alejandro PerinFranceOnyama Limba NEGOTIATION
Kadeem FlosiIndiaAsiya Javayant UNQUALIFIED
Kaitlin OstroskyArgentinaAmy Elsner NEGOTIATION
Aruna FigeroaCanadaBernardo Dominic NEGOTIATION
Frozen Columns
Name
Nicolas Iturbide
Leon Oldroyd
Emily Whobrey
Antonio Caudy
Alejandro Perin
Maria Marrier
James Butt
Octavia Malet
Maisha Rulapaugh
Salvatore Stockham
Arvin Albares
Julie Stenseth
Leon Oldroyd
Aruna Figeroa
Chavez Briddick
Claire Tollner
Octavia Malet
Silvio Slusarski
Clifford Rim
Emily Whobrey
Kadeem Flosi
Jones Vocelka
Jeanfrancois Venere
Sinclair Waycott
Murillo Malet
Costa Dilliard
Murillo Malet
Misaki Royster
Alejandro Perin
Francesco Shinko
Faith Gillian
Morrow Ruta
Leja Caldarera
Munro Ferencz
Misaki Royster
Munro Ferencz
Smith Glick
Silvio Slusarski
Sinclair Waycott
Juan Wieser
Maria Marrier
Stacey Maclead
Rodrigues Campain
Salvatore Stockham
Arvin Albares
Kadeem Flosi
Aruna Figeroa
Sinclair Waycott
James Butt
Juan Wieser
IdCountryDate
1000Argentina2026-05-12
1001France2026-05-15
1002Brazil2026-04-17
1003Australia2026-04-30
1004India2026-05-14
1005Brazil2026-05-01
1006France2026-04-22
1007Japan2026-05-11
1008Japan2026-05-09
1009Russia2026-05-03
1010India2026-04-23
1011France2026-05-12
1012United Kingdom2026-05-06
1013Russia2026-05-13
1014Spain2026-05-12
1015Argentina2026-05-15
1016Italy2026-04-30
1017India2026-04-20
1018Italy2026-05-04
1019Argentina2026-04-27
1020Canada2026-05-08
1021Canada2026-04-29
1022Russia2026-05-15
1023Australia2026-04-21
1024Australia2026-05-11
1025Argentina2026-04-16
1026Argentina2026-04-23
1027India2026-04-25
1028India2026-04-29
1029Argentina2026-04-26
1030Germany2026-05-01
1031Canada2026-05-08
1032Canada2026-04-26
1033India2026-04-20
1034Argentina2026-05-08
1035Japan2026-05-01
1036Argentina2026-04-20
1037Italy2026-04-23
1038France2026-05-07
1039Canada2026-05-13
1040Argentina2026-05-05
1041Canada2026-04-16
1042Brazil2026-05-11
1043Australia2026-05-13
1044France2026-05-10
1045Japan2026-04-20
1046Japan2026-04-28
1047Russia2026-04-20
1048Spain2026-05-01
1049Canada2026-04-30

On-Demand Data

NameIdCountryDate
Leja Caldarera1000Australia2026-05-14
Munro Ferencz1001Brazil2026-04-19
Salvatore Stockham1002Russia2026-05-14
Greenwood Bolognia1003Canada2026-05-10
Mayumi Kolmetz1004Italy2026-04-21
Isabel Bowley1005Canada2026-05-10
Darci Poquette1006Spain2026-04-27
Maisha Rulapaugh1007India2026-04-29
Jones Vocelka1008Argentina2026-04-24
Francesco Shinko1009Argentina2026-05-05
Munro Ferencz1010Germany2026-04-24
Smith Glick1011Argentina2026-04-23
Maria Marrier1012United Kingdom2026-04-16
Rodrigues Campain1013France2026-05-04
Francesco Shinko1014France2026-05-07
Tony Foller1015Spain2026-04-26
Clifford Rim1016Spain2026-04-26
Octavia Malet1017India2026-04-24
Izzy Garufi1018Argentina2026-05-01
Izzy Garufi1019Canada2026-05-03
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Salvatore StockhamItalyIvan Magalhaes NEW
Stacey MacleadUnited KingdomAmy Elsner QUALIFIED
Mayumi KolmetzAustraliaIoni Bowcher NEGOTIATION
Kadeem FlosiRussiaStephen Shaw NEGOTIATION
Aruna FigeroaArgentinaAmy Elsner NEW
Isabel BowleyBrazilIvan Magalhaes QUALIFIED
Jennifer AmigonBrazilOnyama Limba PROPOSAL
Misaki RoysterItalyBernardo Dominic NEW
Izzy GarufiBrazilElwin Sharvill NEW
Silvio SlusarskiJapanBernardo Dominic NEW
Mujtaba NickaGermanyIvan Magalhaes UNQUALIFIED
Maria MarrierFranceBernardo Dominic UNQUALIFIED
Chavez BriddickArgentinaElwin Sharvill NEGOTIATION
Faith GillianGermanyStephen Shaw PROPOSAL
Aditya KuskoCanadaBernardo Dominic QUALIFIED
Clifford RimBrazilStephen Shaw QUALIFIED
Misaki RoysterGermanyBernardo Dominic RENEWAL
Jones VocelkaItalyBernardo Dominic QUALIFIED
Deepesh ChuiIndiaAnna Fali NEGOTIATION
Jennifer AmigonArgentinaStephen Shaw NEGOTIATION
Kaitlin OstroskyItalyStephen Shaw QUALIFIED
Salvatore StockhamBrazilAmy Elsner NEW
Silvio SlusarskiFranceBernardo Dominic NEW
Ivar PaprockiSpainIoni Bowcher UNQUALIFIED
Julie StensethArgentinaAsiya Javayant PROPOSAL
Isabel BowleyFranceIoni Bowcher NEW
Antonio CaudySpainIoni Bowcher UNQUALIFIED
Kadeem FlosiCanadaXuxue Feng UNQUALIFIED
Deepesh ChuiUnited KingdomOnyama Limba UNQUALIFIED
Misaki RoysterRussiaIoni Bowcher RENEWAL
David DarakjyAustraliaXuxue Feng QUALIFIED
Ricardo GauchoFranceXuxue Feng PROPOSAL
Aditya KuskoArgentinaStephen Shaw NEGOTIATION
Alejandro PerinBrazilAmy Elsner RENEWAL
Ivar PaprockiArgentinaAmy Elsner PROPOSAL
Francesco ShinkoJapanAmy Elsner UNQUALIFIED
Maria MarrierItalyAsiya Javayant PROPOSAL
Izzy GarufiFranceIvan Magalhaes QUALIFIED
Salvatore StockhamArgentinaOnyama Limba NEGOTIATION
Antonio CaudySpainAmy Elsner QUALIFIED

<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>