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
Murillo MaletFranceElwin Sharvill QUALIFIED
Mayumi KolmetzArgentinaAsiya Javayant UNQUALIFIED
Darci PoquetteCanadaAsiya Javayant RENEWAL
Ricardo GauchoItalyElwin Sharvill NEGOTIATION
Juan WieserJapanAnna Fali PROPOSAL
Smith GlickUnited KingdomAmy Elsner QUALIFIED
Morrow RutaAustraliaAnna Fali QUALIFIED
Juan WieserUnited KingdomElwin Sharvill NEW
Wickens NestleFranceXuxue Feng NEW
Ivar PaprockiCanadaIvan Magalhaes NEGOTIATION
Leja CaldareraJapanAmy Elsner RENEWAL
Chavez BriddickUnited KingdomStephen Shaw RENEWAL
Aruna FigeroaJapanAmy Elsner RENEWAL
Adams MorascaSpainAsiya Javayant UNQUALIFIED
Maisha RulapaughUnited KingdomAmy Elsner QUALIFIED
Jeanfrancois VenereArgentinaIoni Bowcher RENEWAL
Juan WieserIndiaXuxue Feng UNQUALIFIED
Cody SaylorsRussiaBernardo Dominic UNQUALIFIED
Antonio CaudyAustraliaBernardo Dominic PROPOSAL
Juan WieserIndiaIvan Magalhaes NEW
Mayumi KolmetzSpainIoni Bowcher NEGOTIATION
Octavia MaletBrazilStephen Shaw NEGOTIATION
Sinclair WaycottUnited KingdomAmy Elsner QUALIFIED
Antonio CaudyUnited KingdomBernardo Dominic UNQUALIFIED
Jefferson SchemmerIndiaAmy Elsner RENEWAL
Darci PoquetteItalyAsiya Javayant NEGOTIATION
Salvatore StockhamUnited KingdomStephen Shaw NEW
Munro FerenczJapanElwin Sharvill QUALIFIED
Ashley DoeUnited KingdomAnna Fali NEGOTIATION
Claire TollnerJapanStephen Shaw QUALIFIED
Jennifer AmigonBrazilAnna Fali NEGOTIATION
Isabel BowleyCanadaOnyama Limba NEW
Francesco ShinkoCanadaBernardo Dominic PROPOSAL
Smith GlickGermanyStephen Shaw RENEWAL
Darci PoquetteBrazilXuxue Feng NEGOTIATION
Munro FerenczAustraliaXuxue Feng PROPOSAL
Leja CaldareraArgentinaIvan Magalhaes UNQUALIFIED
Stacey MacleadCanadaIoni Bowcher PROPOSAL
Aruna FigeroaSpainXuxue Feng NEW
Mujtaba NickaCanadaAsiya Javayant PROPOSAL
Faith GillianRussiaAsiya Javayant NEGOTIATION
Kadeem FlosiBrazilElwin Sharvill UNQUALIFIED
Jones VocelkaFranceElwin Sharvill QUALIFIED
Alejandro PerinFranceIoni Bowcher UNQUALIFIED
Claire TollnerRussiaAsiya Javayant NEW
Kaitlin OstroskyItalyElwin Sharvill RENEWAL
Misaki RoysterCanadaElwin Sharvill NEW
Adams MorascaJapanAnna Fali NEW
Maisha RulapaughArgentinaIvan Magalhaes UNQUALIFIED
Jennifer AmigonBrazilAmy Elsner NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Ashley DoeIndiaAnna Fali NEW
Jefferson SchemmerArgentinaAnna Fali QUALIFIED
Chavez BriddickUnited KingdomAsiya Javayant NEGOTIATION
Stacey MacleadFranceAmy Elsner PROPOSAL
Aditya KuskoSpainIoni Bowcher RENEWAL
Misaki RoysterBrazilIvan Magalhaes UNQUALIFIED
Izzy GarufiJapanAmy Elsner RENEWAL
Leon OldroydBrazilAnna Fali NEW
Kadeem FlosiAustraliaAmy Elsner NEW
Kaitlin OstroskyArgentinaOnyama Limba PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jeanfrancois VenereIndia2026-05-10Dorl, James J Esq NEW93Asiya Javayant
1001Kadeem FlosiFrance2026-05-10Dorl, James J Esq NEGOTIATION27Elwin Sharvill
1002Claire TollnerUnited Kingdom2026-05-20Chanay, Jeffrey A Esq NEW58Onyama Limba
1003Antonio CaudyAustralia2026-05-15Commercial Press NEGOTIATION37Elwin Sharvill
1004Cody SaylorsCanada2026-05-10Morlong Associates QUALIFIED56Onyama Limba
1005Mayumi KolmetzIndia2026-05-19Chapman, Ross E Esq PROPOSAL92Anna Fali
1006Claire TollnerRussia2026-05-27Chapman, Ross E Esq QUALIFIED50Asiya Javayant
1007Greenwood BologniaItaly2026-05-16Morlong Associates RENEWAL53Bernardo Dominic
1008Kadeem FlosiJapan2026-06-01Chemel, James L Cpa RENEWAL38Bernardo Dominic
1009Maisha RulapaughJapan2026-05-22Chemel, James L Cpa QUALIFIED33Asiya Javayant
1010David DarakjyIndia2026-05-11Chapman, Ross E Esq NEGOTIATION50Ioni Bowcher
1011James ButtIndia2026-05-24Rousseaux, Michael Esq NEGOTIATION12Xuxue Feng
1012Adams MorascaBrazil2026-05-08Rousseaux, Michael Esq PROPOSAL3Bernardo Dominic
1013Jefferson SchemmerIndia2026-06-03Commercial Press PROPOSAL95Ivan Magalhaes
1014Morrow RutaIndia2026-05-19Dorl, James J Esq QUALIFIED77Asiya Javayant
1015Murillo MaletUnited Kingdom2026-05-07King, Christopher A Esq PROPOSAL39Ivan Magalhaes
1016Julie StensethArgentina2026-05-12Buckley Miller Wright NEW34Elwin Sharvill
1017Leon OldroydUnited Kingdom2026-05-09Rangoni Of Florence UNQUALIFIED22Ivan Magalhaes
1018Mujtaba NickaGermany2026-05-19Dorl, James J Esq QUALIFIED32Elwin Sharvill
1019Chavez BriddickFrance2026-05-08Dorl, James J Esq NEGOTIATION79Bernardo Dominic
1020Mayumi KolmetzIndia2026-05-11Feiner Bros UNQUALIFIED6Amy Elsner
1021Clifford RimUnited Kingdom2026-05-16King, Christopher A Esq UNQUALIFIED96Asiya Javayant
1022Kaitlin OstroskyRussia2026-05-10King, Christopher A Esq QUALIFIED78Ivan Magalhaes
1023Nicolas IturbideBrazil2026-05-21Buckley Miller Wright RENEWAL59Onyama Limba
1024Silvio SlusarskiAustralia2026-06-05Chapman, Ross E Esq NEGOTIATION11Onyama Limba
1025Maisha RulapaughItaly2026-05-28Rousseaux, Michael Esq NEW18Ivan Magalhaes
1026Juan WieserAustralia2026-05-17Chemel, James L Cpa NEW16Xuxue Feng
1027Alejandro PerinBrazil2026-05-22Feiner Bros QUALIFIED42Anna Fali
1028Mujtaba NickaRussia2026-06-03Benton, John B Jr PROPOSAL49Asiya Javayant
1029Jones VocelkaRussia2026-06-03Feiner Bros PROPOSAL84Stephen Shaw
1030Wickens NestleUnited Kingdom2026-06-01Chapman, Ross E Esq QUALIFIED37Elwin Sharvill
1031Mayumi KolmetzJapan2026-05-12Feiner Bros PROPOSAL60Stephen Shaw
1032Costa DilliardGermany2026-05-21Chanay, Jeffrey A Esq QUALIFIED82Stephen Shaw
1033Aruna FigeroaIndia2026-05-21Morlong Associates UNQUALIFIED79Amy Elsner
1034Munro FerenczRussia2026-05-13Rangoni Of Florence UNQUALIFIED33Anna Fali
1035Ricardo GauchoAustralia2026-06-01King, Christopher A Esq PROPOSAL1Elwin Sharvill
1036Mayumi KolmetzGermany2026-05-15Rousseaux, Michael Esq NEGOTIATION90Ivan Magalhaes
1037Chavez BriddickUnited Kingdom2026-05-19Rangoni Of Florence PROPOSAL1Stephen Shaw
1038Octavia MaletIndia2026-06-03Chemel, James L Cpa NEW4Ivan Magalhaes
1039Jefferson SchemmerIndia2026-05-20Benton, John B Jr QUALIFIED29Ivan Magalhaes
1040Stacey MacleadFrance2026-05-18Feltz Printing Service QUALIFIED55Ioni Bowcher
1041Misaki RoysterCanada2026-05-30Rangoni Of Florence RENEWAL68Bernardo Dominic
1042Johnson SergiItaly2026-05-08Printing Dimensions NEW18Bernardo Dominic
1043Morrow RutaIndia2026-05-29Buckley Miller Wright UNQUALIFIED4Onyama Limba
1044Alejandro PerinFrance2026-05-21Dorl, James J Esq UNQUALIFIED55Onyama Limba
1045Chavez BriddickBrazil2026-06-03Rousseaux, Michael Esq PROPOSAL81Anna Fali
1046Silvio SlusarskiGermany2026-05-10Rousseaux, Michael Esq RENEWAL16Xuxue Feng
1047Silvio SlusarskiArgentina2026-05-22Rousseaux, Michael Esq RENEWAL84Ivan Magalhaes
1048Kadeem FlosiBrazil2026-05-22Chapman, Ross E Esq NEW36Amy Elsner
1049Faith GillianJapan2026-05-17Feltz Printing Service NEGOTIATION15Elwin Sharvill
Frozen Rows
NameCountryRepresentativeStatus
Johnson SergiRussiaBernardo Dominic NEW
Costa DilliardSpainStephen Shaw UNQUALIFIED
Ashley DoeJapanOnyama Limba UNQUALIFIED
Leon OldroydAustraliaIoni Bowcher RENEWAL
Antonio CaudyAustraliaStephen Shaw RENEWAL
Arvin AlbaresGermanyIvan Magalhaes NEW
Leja CaldareraCanadaOnyama Limba NEGOTIATION
Murillo MaletCanadaElwin Sharvill QUALIFIED
Jennifer AmigonIndiaAsiya Javayant NEGOTIATION
Maisha RulapaughAustraliaXuxue Feng RENEWAL
Leja CaldareraRussiaAsiya Javayant NEGOTIATION
Kadeem FlosiAustraliaElwin Sharvill QUALIFIED
Leja CaldareraIndiaAmy Elsner RENEWAL
Mujtaba NickaItalyIoni Bowcher RENEWAL
Octavia MaletItalyStephen Shaw UNQUALIFIED
Aruna FigeroaUnited KingdomXuxue Feng PROPOSAL
Aika InouyeRussiaIvan Magalhaes RENEWAL
Jennifer AmigonRussiaBernardo Dominic QUALIFIED
Isabel BowleyGermanyIvan Magalhaes UNQUALIFIED
Francesco ShinkoArgentinaBernardo Dominic QUALIFIED
Nicolas IturbideAustraliaOnyama Limba PROPOSAL
Emily WhobreyBrazilElwin Sharvill PROPOSAL
Julie StensethBrazilAsiya Javayant RENEWAL
Julie StensethGermanyBernardo Dominic UNQUALIFIED
Darci PoquetteBrazilXuxue Feng PROPOSAL
Aruna FigeroaItalyAnna Fali UNQUALIFIED
Sinclair WaycottAustraliaXuxue Feng NEGOTIATION
Adams MorascaSpainAsiya Javayant UNQUALIFIED
Emily WhobreyFranceXuxue Feng UNQUALIFIED
Silvio SlusarskiCanadaBernardo Dominic RENEWAL
Jefferson SchemmerItalyBernardo Dominic QUALIFIED
Greenwood BologniaUnited KingdomAsiya Javayant QUALIFIED
Morrow RutaRussiaIoni Bowcher QUALIFIED
Sinclair WaycottIndiaXuxue Feng QUALIFIED
Stacey MacleadCanadaAnna Fali NEGOTIATION
Adams MorascaRussiaBernardo Dominic NEGOTIATION
Aditya KuskoItalyAmy Elsner QUALIFIED
Darci PoquetteAustraliaAsiya Javayant QUALIFIED
Tony FollerIndiaIoni Bowcher UNQUALIFIED
Emily WhobreyUnited KingdomElwin Sharvill NEW
Octavia MaletAustraliaIvan Magalhaes RENEWAL
Leon OldroydJapanIoni Bowcher NEGOTIATION
Smith GlickIndiaStephen Shaw QUALIFIED
Chavez BriddickArgentinaStephen Shaw RENEWAL
Aditya KuskoAustraliaStephen Shaw NEGOTIATION
Kadeem FlosiGermanyStephen Shaw NEGOTIATION
Ricardo GauchoCanadaIoni Bowcher PROPOSAL
Ricardo GauchoIndiaOnyama Limba QUALIFIED
Ivar PaprockiSpainXuxue Feng RENEWAL
Salvatore StockhamGermanyAmy Elsner PROPOSAL
Frozen Columns
Name
Smith Glick
Sinclair Waycott
Leon Oldroyd
Leja Caldarera
Arvin Albares
Nicolas Iturbide
Maisha Rulapaugh
Maisha Rulapaugh
Misaki Royster
James Butt
Kaitlin Ostrosky
Isabel Bowley
Cody Saylors
Chavez Briddick
Francesco Shinko
Claire Tollner
Ashley Doe
Kadeem Flosi
Maria Marrier
Chavez Briddick
David Darakjy
Ricardo Gaucho
Ashley Doe
Antonio Caudy
Izzy Garufi
Cody Saylors
Ricardo Gaucho
Darci Poquette
Ashley Doe
Aika Inouye
Sinclair Waycott
Jones Vocelka
Johnson Sergi
Octavia Malet
Aika Inouye
Jones Vocelka
Faith Gillian
Salvatore Stockham
Ashley Doe
Juan Wieser
Cody Saylors
James Butt
Cody Saylors
Munro Ferencz
Munro Ferencz
Rodrigues Campain
Clifford Rim
Stacey Maclead
Maisha Rulapaugh
Aditya Kusko
IdCountryDate
1000Canada2026-06-03
1001United Kingdom2026-05-29
1002Germany2026-05-15
1003Spain2026-05-22
1004Brazil2026-05-18
1005Spain2026-05-18
1006France2026-05-10
1007Japan2026-06-03
1008Japan2026-06-05
1009Brazil2026-06-03
1010Italy2026-05-24
1011Argentina2026-05-09
1012Spain2026-05-09
1013Spain2026-06-03
1014Italy2026-05-27
1015Canada2026-05-14
1016Italy2026-05-13
1017Argentina2026-05-08
1018Spain2026-06-05
1019Argentina2026-05-23
1020Canada2026-05-13
1021Italy2026-06-02
1022Canada2026-06-02
1023France2026-05-23
1024Japan2026-05-14
1025Australia2026-05-26
1026Italy2026-05-09
1027United Kingdom2026-05-27
1028Spain2026-05-29
1029Russia2026-06-04
1030France2026-05-19
1031Australia2026-05-12
1032Russia2026-05-30
1033Germany2026-06-01
1034Italy2026-05-12
1035India2026-05-13
1036Spain2026-05-08
1037France2026-05-25
1038Russia2026-05-29
1039Russia2026-05-22
1040Brazil2026-05-10
1041Japan2026-05-28
1042Spain2026-05-10
1043Russia2026-05-29
1044Canada2026-05-27
1045Spain2026-06-03
1046Italy2026-05-08
1047United Kingdom2026-05-14
1048Germany2026-05-10
1049United Kingdom2026-05-07

On-Demand Data

NameIdCountryDate
Ricardo Gaucho1000Russia2026-05-24
Deepesh Chui1001Spain2026-05-28
Leon Oldroyd1002Italy2026-05-29
Chavez Briddick1003Russia2026-05-26
Mujtaba Nicka1004Italy2026-05-19
Smith Glick1005Germany2026-06-01
Faith Gillian1006Italy2026-05-29
Jones Vocelka1007Russia2026-05-27
Nicolas Iturbide1008Australia2026-05-30
David Darakjy1009Spain2026-05-12
Maria Marrier1010Spain2026-05-31
Smith Glick1011Brazil2026-06-03
Emily Whobrey1012Australia2026-05-22
Chavez Briddick1013Australia2026-05-24
Jones Vocelka1014Canada2026-05-27
Deepesh Chui1015Japan2026-05-26
Maisha Rulapaugh1016Brazil2026-05-11
Claire Tollner1017Australia2026-05-16
Stacey Maclead1018India2026-05-28
Francesco Shinko1019Brazil2026-05-09
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Morrow RutaRussiaIvan Magalhaes RENEWAL
Clifford RimCanadaElwin Sharvill RENEWAL
Deepesh ChuiCanadaAmy Elsner PROPOSAL
Rodrigues CampainCanadaStephen Shaw UNQUALIFIED
Chavez BriddickUnited KingdomAnna Fali UNQUALIFIED
Ricardo GauchoItalyOnyama Limba NEW
David DarakjyGermanyStephen Shaw UNQUALIFIED
Aruna FigeroaArgentinaElwin Sharvill UNQUALIFIED
Murillo MaletIndiaIvan Magalhaes NEGOTIATION
Octavia MaletRussiaAnna Fali RENEWAL
Leja CaldareraSpainIoni Bowcher QUALIFIED
Francesco ShinkoUnited KingdomOnyama Limba NEW
Murillo MaletGermanyXuxue Feng PROPOSAL
Isabel BowleyCanadaXuxue Feng RENEWAL
Misaki RoysterFranceXuxue Feng QUALIFIED
Ricardo GauchoJapanIoni Bowcher NEW
Aruna FigeroaBrazilIvan Magalhaes RENEWAL
Francesco ShinkoAustraliaElwin Sharvill PROPOSAL
Aruna FigeroaBrazilAmy Elsner RENEWAL
Antonio CaudyCanadaStephen Shaw UNQUALIFIED
Jeanfrancois VenereCanadaAmy Elsner NEGOTIATION
James ButtSpainStephen Shaw UNQUALIFIED
Julie StensethSpainXuxue Feng UNQUALIFIED
Aika InouyeBrazilStephen Shaw UNQUALIFIED
Cody SaylorsUnited KingdomBernardo Dominic NEW
Jeanfrancois VenereRussiaIoni Bowcher RENEWAL
Misaki RoysterBrazilIoni Bowcher QUALIFIED
Chavez BriddickBrazilIoni Bowcher UNQUALIFIED
James ButtArgentinaOnyama Limba RENEWAL
Emily WhobreySpainIvan Magalhaes UNQUALIFIED
Greenwood BologniaRussiaIoni Bowcher PROPOSAL
Leja CaldareraRussiaStephen Shaw RENEWAL
Smith GlickSpainBernardo Dominic QUALIFIED
Rodrigues CampainIndiaXuxue Feng NEGOTIATION
Misaki RoysterGermanyIvan Magalhaes NEW
Sinclair WaycottCanadaOnyama Limba QUALIFIED
Kadeem FlosiSpainBernardo Dominic RENEWAL
Ricardo GauchoFranceBernardo Dominic QUALIFIED
Arvin AlbaresCanadaAnna Fali QUALIFIED
Ivar PaprockiAustraliaIoni Bowcher 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>