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
Izzy GarufiUnited KingdomIoni Bowcher NEGOTIATION
Antonio CaudyGermanyOnyama Limba UNQUALIFIED
Munro FerenczRussiaXuxue Feng QUALIFIED
Stacey MacleadFranceStephen Shaw QUALIFIED
Leon OldroydUnited KingdomIoni Bowcher NEGOTIATION
Ashley DoeSpainIoni Bowcher RENEWAL
Jennifer AmigonJapanAmy Elsner NEW
Deepesh ChuiBrazilElwin Sharvill RENEWAL
Morrow RutaArgentinaAmy Elsner UNQUALIFIED
Ricardo GauchoArgentinaIvan Magalhaes QUALIFIED
Julie StensethAustraliaBernardo Dominic QUALIFIED
Stacey MacleadIndiaIoni Bowcher UNQUALIFIED
Maisha RulapaughItalyAmy Elsner PROPOSAL
Salvatore StockhamGermanyXuxue Feng NEGOTIATION
Mujtaba NickaAustraliaAsiya Javayant NEW
Antonio CaudyJapanAmy Elsner NEW
Nicolas IturbideGermanyStephen Shaw NEW
Johnson SergiGermanyIvan Magalhaes NEGOTIATION
Leon OldroydCanadaAnna Fali UNQUALIFIED
Ricardo GauchoFranceAsiya Javayant QUALIFIED
Ivar PaprockiSpainAnna Fali PROPOSAL
Mujtaba NickaAustraliaBernardo Dominic RENEWAL
Mayumi KolmetzRussiaOnyama Limba QUALIFIED
Maisha RulapaughGermanyElwin Sharvill PROPOSAL
Emily WhobreyIndiaAmy Elsner UNQUALIFIED
Aika InouyeArgentinaBernardo Dominic NEGOTIATION
Greenwood BologniaIndiaIvan Magalhaes NEW
Murillo MaletItalyOnyama Limba RENEWAL
Aika InouyeSpainElwin Sharvill PROPOSAL
Jefferson SchemmerFranceIoni Bowcher NEW
Leon OldroydIndiaOnyama Limba PROPOSAL
Kaitlin OstroskyFranceOnyama Limba NEGOTIATION
Izzy GarufiUnited KingdomIoni Bowcher NEW
Munro FerenczCanadaStephen Shaw NEGOTIATION
Faith GillianJapanAsiya Javayant NEGOTIATION
Jones VocelkaSpainXuxue Feng QUALIFIED
Costa DilliardRussiaStephen Shaw RENEWAL
Jefferson SchemmerRussiaStephen Shaw PROPOSAL
Tony FollerFranceElwin Sharvill QUALIFIED
Deepesh ChuiFranceIoni Bowcher NEW
Clifford RimBrazilElwin Sharvill PROPOSAL
Izzy GarufiCanadaXuxue Feng NEGOTIATION
Octavia MaletGermanyXuxue Feng UNQUALIFIED
Deepesh ChuiArgentinaXuxue Feng NEW
Ashley DoeGermanyIoni Bowcher PROPOSAL
Sinclair WaycottIndiaAsiya Javayant PROPOSAL
Leon OldroydArgentinaElwin Sharvill RENEWAL
Antonio CaudyArgentinaAnna Fali PROPOSAL
Misaki RoysterBrazilAsiya Javayant UNQUALIFIED
Isabel BowleyBrazilIvan Magalhaes NEW
Horizontal
NameCountryRepresentativeStatus
Aika InouyeCanadaElwin Sharvill NEW
Smith GlickCanadaElwin Sharvill NEGOTIATION
Leon OldroydUnited KingdomIvan Magalhaes QUALIFIED
Arvin AlbaresArgentinaElwin Sharvill QUALIFIED
Claire TollnerIndiaXuxue Feng RENEWAL
Tony FollerArgentinaIvan Magalhaes UNQUALIFIED
Arvin AlbaresRussiaStephen Shaw NEGOTIATION
Ashley DoeFranceAmy Elsner NEW
Murillo MaletJapanAmy Elsner NEW
Costa DilliardJapanAsiya Javayant PROPOSAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Antonio CaudyUnited Kingdom2025-08-29Truhlar And Truhlar Attys PROPOSAL15Bernardo Dominic
1001Sinclair WaycottGermany2025-08-26Feiner Bros QUALIFIED4Onyama Limba
1002Adams MorascaUnited Kingdom2025-09-20King, Christopher A Esq PROPOSAL37Stephen Shaw
1003Tony FollerSpain2025-09-04Benton, John B Jr UNQUALIFIED93Ioni Bowcher
1004Isabel BowleySpain2025-09-02Benton, John B Jr PROPOSAL24Asiya Javayant
1005David DarakjyArgentina2025-09-10Morlong Associates QUALIFIED81Bernardo Dominic
1006Ivar PaprockiJapan2025-09-07Morlong Associates UNQUALIFIED71Bernardo Dominic
1007Maria MarrierCanada2025-09-08Chanay, Jeffrey A Esq NEGOTIATION8Bernardo Dominic
1008Mujtaba NickaUnited Kingdom2025-09-14Chemel, James L Cpa UNQUALIFIED70Bernardo Dominic
1009Alejandro PerinCanada2025-09-20Commercial Press RENEWAL13Xuxue Feng
1010David DarakjyBrazil2025-08-27Dorl, James J Esq PROPOSAL1Xuxue Feng
1011Alejandro PerinUnited Kingdom2025-09-05Morlong Associates RENEWAL39Ivan Magalhaes
1012Mujtaba NickaUnited Kingdom2025-09-13Rangoni Of Florence QUALIFIED44Xuxue Feng
1013Aditya KuskoRussia2025-08-29Benton, John B Jr NEW74Onyama Limba
1014Emily WhobreyRussia2025-09-12Dorl, James J Esq UNQUALIFIED0Stephen Shaw
1015Murillo MaletSpain2025-08-29Feltz Printing Service PROPOSAL34Elwin Sharvill
1016Deepesh ChuiFrance2025-09-22Truhlar And Truhlar Attys PROPOSAL10Elwin Sharvill
1017Francesco ShinkoSpain2025-09-01Dorl, James J Esq UNQUALIFIED6Elwin Sharvill
1018Salvatore StockhamFrance2025-09-22King, Christopher A Esq QUALIFIED24Elwin Sharvill
1019Izzy GarufiFrance2025-09-02King, Christopher A Esq QUALIFIED59Stephen Shaw
1020Johnson SergiBrazil2025-09-02Printing Dimensions UNQUALIFIED89Ivan Magalhaes
1021Rodrigues CampainBrazil2025-09-15Chanay, Jeffrey A Esq PROPOSAL65Amy Elsner
1022Salvatore StockhamSpain2025-09-17Chapman, Ross E Esq NEW60Ioni Bowcher
1023Mayumi KolmetzRussia2025-09-02Rousseaux, Michael Esq RENEWAL33Xuxue Feng
1024Jennifer AmigonGermany2025-08-30Chanay, Jeffrey A Esq UNQUALIFIED18Ioni Bowcher
1025Ivar PaprockiBrazil2025-09-07Morlong Associates QUALIFIED14Asiya Javayant
1026Jefferson SchemmerGermany2025-08-30King, Christopher A Esq PROPOSAL36Bernardo Dominic
1027James ButtGermany2025-09-11Truhlar And Truhlar Attys QUALIFIED98Asiya Javayant
1028Octavia MaletSpain2025-09-21Feltz Printing Service NEW62Anna Fali
1029Munro FerenczUnited Kingdom2025-09-04Commercial Press UNQUALIFIED66Bernardo Dominic
1030Tony FollerArgentina2025-09-16Feltz Printing Service NEW39Ivan Magalhaes
1031Ashley DoeUnited Kingdom2025-09-22Dorl, James J Esq PROPOSAL32Bernardo Dominic
1032Leja CaldareraIndia2025-09-05Dorl, James J Esq UNQUALIFIED55Amy Elsner
1033Johnson SergiBrazil2025-09-06Printing Dimensions QUALIFIED15Bernardo Dominic
1034Kaitlin OstroskyGermany2025-09-15Feiner Bros QUALIFIED23Ioni Bowcher
1035Kadeem FlosiRussia2025-09-16Feiner Bros RENEWAL8Amy Elsner
1036Antonio CaudyCanada2025-09-14Rousseaux, Michael Esq RENEWAL44Anna Fali
1037Johnson SergiCanada2025-09-19Feltz Printing Service RENEWAL37Stephen Shaw
1038Leja CaldareraIndia2025-09-01Buckley Miller Wright QUALIFIED44Amy Elsner
1039Izzy GarufiArgentina2025-09-16Printing Dimensions NEGOTIATION58Amy Elsner
1040Julie StensethJapan2025-09-19Dorl, James J Esq UNQUALIFIED5Ioni Bowcher
1041Jones VocelkaBrazil2025-09-02Rousseaux, Michael Esq RENEWAL90Stephen Shaw
1042Costa DilliardSpain2025-09-17Feiner Bros NEW67Bernardo Dominic
1043Deepesh ChuiGermany2025-09-14Buckley Miller Wright QUALIFIED70Amy Elsner
1044Octavia MaletItaly2025-09-18Feiner Bros UNQUALIFIED8Anna Fali
1045David DarakjyBrazil2025-08-30Rangoni Of Florence UNQUALIFIED62Asiya Javayant
1046James ButtSpain2025-08-28Morlong Associates NEW58Elwin Sharvill
1047Greenwood BologniaIndia2025-09-01Benton, John B Jr NEGOTIATION29Stephen Shaw
1048Morrow RutaRussia2025-09-21Chapman, Ross E Esq UNQUALIFIED14Bernardo Dominic
1049Aika InouyeSpain2025-09-17Chemel, James L Cpa NEGOTIATION15Stephen Shaw
Frozen Rows
NameCountryRepresentativeStatus
Salvatore StockhamBrazilElwin Sharvill NEGOTIATION
Julie StensethFranceIvan Magalhaes PROPOSAL
Aditya KuskoJapanXuxue Feng QUALIFIED
Rodrigues CampainIndiaOnyama Limba PROPOSAL
Kaitlin OstroskyAustraliaBernardo Dominic RENEWAL
Munro FerenczItalyIvan Magalhaes NEW
Morrow RutaAustraliaAsiya Javayant NEW
Ashley DoeCanadaElwin Sharvill RENEWAL
Johnson SergiBrazilElwin Sharvill NEW
Kaitlin OstroskyUnited KingdomStephen Shaw PROPOSAL
Juan WieserBrazilBernardo Dominic NEW
Sinclair WaycottArgentinaElwin Sharvill RENEWAL
Ashley DoeUnited KingdomElwin Sharvill UNQUALIFIED
Aika InouyeAustraliaAsiya Javayant UNQUALIFIED
Tony FollerJapanIvan Magalhaes QUALIFIED
Sinclair WaycottArgentinaElwin Sharvill NEGOTIATION
James ButtArgentinaXuxue Feng RENEWAL
Jones VocelkaCanadaAmy Elsner QUALIFIED
Arvin AlbaresJapanAsiya Javayant NEW
Julie StensethIndiaOnyama Limba UNQUALIFIED
Alejandro PerinGermanyIoni Bowcher NEGOTIATION
Aika InouyeFranceOnyama Limba UNQUALIFIED
Stacey MacleadBrazilXuxue Feng NEW
Tony FollerAustraliaStephen Shaw NEGOTIATION
Rodrigues CampainSpainAnna Fali NEW
Costa DilliardFranceOnyama Limba NEGOTIATION
Maria MarrierIndiaXuxue Feng UNQUALIFIED
Aruna FigeroaRussiaAnna Fali NEGOTIATION
Aika InouyeUnited KingdomAsiya Javayant NEGOTIATION
Wickens NestleIndiaBernardo Dominic NEGOTIATION
Jeanfrancois VenereFranceXuxue Feng PROPOSAL
Izzy GarufiUnited KingdomOnyama Limba QUALIFIED
Emily WhobreyBrazilBernardo Dominic QUALIFIED
Rodrigues CampainRussiaBernardo Dominic QUALIFIED
Smith GlickArgentinaAmy Elsner NEGOTIATION
Emily WhobreyCanadaIvan Magalhaes NEW
Maisha RulapaughRussiaIvan Magalhaes PROPOSAL
Jennifer AmigonItalyBernardo Dominic NEW
Munro FerenczArgentinaIoni Bowcher QUALIFIED
Izzy GarufiCanadaIvan Magalhaes UNQUALIFIED
Leon OldroydAustraliaBernardo Dominic UNQUALIFIED
Wickens NestleGermanyXuxue Feng NEGOTIATION
David DarakjyCanadaBernardo Dominic RENEWAL
Costa DilliardUnited KingdomOnyama Limba NEGOTIATION
Darci PoquetteSpainIoni Bowcher UNQUALIFIED
Claire TollnerIndiaXuxue Feng PROPOSAL
Stacey MacleadUnited KingdomAsiya Javayant NEGOTIATION
Leja CaldareraGermanyStephen Shaw QUALIFIED
Francesco ShinkoJapanBernardo Dominic UNQUALIFIED
Aruna FigeroaIndiaAmy Elsner UNQUALIFIED
Frozen Columns
Name
Munro Ferencz
Misaki Royster
Jones Vocelka
Stacey Maclead
Smith Glick
Cody Saylors
Rodrigues Campain
Cody Saylors
Aika Inouye
Octavia Malet
Ashley Doe
Sinclair Waycott
Antonio Caudy
Ivar Paprocki
Octavia Malet
Morrow Ruta
Leon Oldroyd
Octavia Malet
Leon Oldroyd
Alejandro Perin
Ashley Doe
Juan Wieser
Smith Glick
Darci Poquette
Aditya Kusko
Juan Wieser
Deepesh Chui
James Butt
Murillo Malet
Aruna Figeroa
Aruna Figeroa
James Butt
Nicolas Iturbide
Francesco Shinko
Ashley Doe
Rodrigues Campain
Octavia Malet
Arvin Albares
Cody Saylors
Claire Tollner
Morrow Ruta
Chavez Briddick
Aditya Kusko
Stacey Maclead
Jeanfrancois Venere
Claire Tollner
Alejandro Perin
Faith Gillian
Jeanfrancois Venere
Faith Gillian
IdCountryDate
1000Italy2025-09-18
1001Russia2025-09-07
1002Italy2025-09-02
1003Germany2025-09-17
1004Spain2025-08-30
1005Russia2025-09-02
1006Russia2025-08-27
1007France2025-08-30
1008Canada2025-09-17
1009Spain2025-08-28
1010Brazil2025-08-25
1011Italy2025-09-03
1012Italy2025-09-17
1013Canada2025-08-31
1014Italy2025-08-24
1015India2025-08-29
1016Germany2025-09-12
1017Germany2025-09-05
1018Canada2025-08-30
1019Australia2025-08-26
1020France2025-09-13
1021India2025-09-03
1022Argentina2025-09-22
1023Argentina2025-09-14
1024Germany2025-08-31
1025Spain2025-08-24
1026Argentina2025-09-20
1027Germany2025-09-12
1028France2025-09-19
1029Italy2025-09-02
1030Italy2025-09-11
1031Australia2025-09-01
1032Italy2025-09-03
1033Brazil2025-09-08
1034United Kingdom2025-08-26
1035France2025-09-17
1036France2025-09-03
1037Italy2025-09-08
1038Canada2025-09-14
1039Argentina2025-09-14
1040Brazil2025-09-14
1041Australia2025-08-25
1042Italy2025-09-16
1043France2025-09-17
1044Argentina2025-08-29
1045Spain2025-09-04
1046India2025-08-31
1047Japan2025-09-04
1048Spain2025-09-21
1049Russia2025-09-11

On-Demand Data

NameIdCountryDate
Misaki Royster1000United Kingdom2025-09-04
Maisha Rulapaugh1001Australia2025-08-29
Emily Whobrey1002France2025-09-18
Mujtaba Nicka1003Japan2025-09-01
Izzy Garufi1004Japan2025-09-22
Greenwood Bolognia1005Russia2025-09-20
Munro Ferencz1006Russia2025-09-05
Cody Saylors1007Japan2025-09-09
Aditya Kusko1008Italy2025-09-09
Munro Ferencz1009Italy2025-09-14
Clifford Rim1010Canada2025-09-04
Jefferson Schemmer1011Germany2025-09-07
Darci Poquette1012Russia2025-09-16
Mujtaba Nicka1013Argentina2025-09-11
Aruna Figeroa1014Russia2025-08-28
Emily Whobrey1015Argentina2025-09-13
Silvio Slusarski1016Argentina2025-08-24
Juan Wieser1017Australia2025-08-24
Munro Ferencz1018Russia2025-09-21
Arvin Albares1019Japan2025-09-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Smith GlickGermanyAmy Elsner RENEWAL
Clifford RimFranceOnyama Limba RENEWAL
Octavia MaletArgentinaIoni Bowcher NEW
Aruna FigeroaJapanAnna Fali UNQUALIFIED
Wickens NestleRussiaAnna Fali RENEWAL
Costa DilliardJapanAnna Fali PROPOSAL
Aruna FigeroaUnited KingdomIoni Bowcher UNQUALIFIED
Faith GillianRussiaBernardo Dominic PROPOSAL
Ivar PaprockiFranceAnna Fali PROPOSAL
Mujtaba NickaCanadaIoni Bowcher NEW
Aditya KuskoJapanIoni Bowcher RENEWAL
Jennifer AmigonItalyOnyama Limba NEGOTIATION
Salvatore StockhamGermanyOnyama Limba UNQUALIFIED
James ButtSpainElwin Sharvill QUALIFIED
Salvatore StockhamSpainElwin Sharvill NEW
Smith GlickArgentinaOnyama Limba UNQUALIFIED
Arvin AlbaresIndiaAnna Fali RENEWAL
Emily WhobreySpainBernardo Dominic PROPOSAL
Cody SaylorsUnited KingdomXuxue Feng NEW
Juan WieserSpainAmy Elsner NEGOTIATION
Darci PoquetteAustraliaIoni Bowcher RENEWAL
Deepesh ChuiAustraliaAmy Elsner NEW
Maria MarrierGermanyAnna Fali PROPOSAL
Rodrigues CampainGermanyXuxue Feng NEGOTIATION
Nicolas IturbideUnited KingdomIoni Bowcher NEW
Maria MarrierJapanXuxue Feng PROPOSAL
Emily WhobreyGermanyBernardo Dominic NEGOTIATION
Mayumi KolmetzRussiaXuxue Feng RENEWAL
Salvatore StockhamGermanyXuxue Feng NEW
Izzy GarufiItalyAsiya Javayant NEGOTIATION
Smith GlickCanadaIvan Magalhaes RENEWAL
Cody SaylorsArgentinaElwin Sharvill NEW
Darci PoquetteSpainAmy Elsner NEW
Johnson SergiUnited KingdomBernardo Dominic QUALIFIED
Stacey MacleadIndiaOnyama Limba NEGOTIATION
Mayumi KolmetzCanadaAnna Fali QUALIFIED
Tony FollerIndiaAmy Elsner NEW
Ricardo GauchoRussiaStephen Shaw NEW
James ButtFranceAmy Elsner PROPOSAL
Deepesh ChuiAustraliaXuxue Feng 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>