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
Jones VocelkaSpainBernardo Dominic NEGOTIATION
Maria MarrierSpainBernardo Dominic NEGOTIATION
Jennifer AmigonIndiaIoni Bowcher RENEWAL
Maria MarrierJapanXuxue Feng NEW
Deepesh ChuiBrazilStephen Shaw RENEWAL
Aditya KuskoIndiaOnyama Limba NEGOTIATION
Tony FollerCanadaIvan Magalhaes PROPOSAL
Smith GlickFranceAnna Fali UNQUALIFIED
Tony FollerGermanyXuxue Feng QUALIFIED
Smith GlickIndiaBernardo Dominic QUALIFIED
Tony FollerAustraliaAsiya Javayant RENEWAL
Izzy GarufiGermanyXuxue Feng RENEWAL
Morrow RutaAustraliaBernardo Dominic NEGOTIATION
Rodrigues CampainItalyElwin Sharvill RENEWAL
Alejandro PerinGermanyElwin Sharvill NEGOTIATION
Leon OldroydUnited KingdomOnyama Limba NEW
Jeanfrancois VenereUnited KingdomAnna Fali NEGOTIATION
Morrow RutaJapanElwin Sharvill QUALIFIED
Aruna FigeroaAustraliaAnna Fali NEGOTIATION
Clifford RimBrazilAnna Fali RENEWAL
Ashley DoeIndiaAsiya Javayant QUALIFIED
Izzy GarufiSpainAmy Elsner UNQUALIFIED
Jennifer AmigonFranceAnna Fali NEW
Darci PoquetteSpainIoni Bowcher NEGOTIATION
Jennifer AmigonRussiaStephen Shaw NEGOTIATION
Mujtaba NickaArgentinaIoni Bowcher UNQUALIFIED
Ashley DoeBrazilElwin Sharvill NEW
James ButtSpainBernardo Dominic QUALIFIED
Juan WieserUnited KingdomXuxue Feng NEGOTIATION
Jones VocelkaCanadaIvan Magalhaes PROPOSAL
Aika InouyeCanadaBernardo Dominic UNQUALIFIED
James ButtAustraliaBernardo Dominic NEW
Cody SaylorsItalyBernardo Dominic RENEWAL
Aika InouyeArgentinaBernardo Dominic PROPOSAL
Ashley DoeRussiaAsiya Javayant NEW
Cody SaylorsSpainOnyama Limba RENEWAL
Clifford RimGermanyElwin Sharvill NEGOTIATION
Morrow RutaFranceIvan Magalhaes UNQUALIFIED
Izzy GarufiFranceXuxue Feng RENEWAL
Aruna FigeroaGermanyAnna Fali RENEWAL
Johnson SergiItalyIoni Bowcher NEW
Ricardo GauchoArgentinaElwin Sharvill RENEWAL
Alejandro PerinSpainIvan Magalhaes QUALIFIED
Murillo MaletIndiaAsiya Javayant PROPOSAL
Emily WhobreyItalyElwin Sharvill NEW
Wickens NestleCanadaXuxue Feng QUALIFIED
Mujtaba NickaRussiaIvan Magalhaes RENEWAL
Munro FerenczGermanyIoni Bowcher NEW
Ashley DoeCanadaElwin Sharvill NEW
Kadeem FlosiArgentinaIvan Magalhaes QUALIFIED
Horizontal
NameCountryRepresentativeStatus
James ButtCanadaIvan Magalhaes QUALIFIED
Costa DilliardSpainOnyama Limba NEGOTIATION
Claire TollnerRussiaXuxue Feng NEGOTIATION
Mayumi KolmetzAustraliaBernardo Dominic RENEWAL
Jones VocelkaBrazilIoni Bowcher QUALIFIED
Johnson SergiArgentinaAnna Fali NEGOTIATION
Darci PoquetteJapanStephen Shaw UNQUALIFIED
Tony FollerUnited KingdomBernardo Dominic NEW
Alejandro PerinCanadaIoni Bowcher UNQUALIFIED
Misaki RoysterSpainOnyama Limba RENEWAL
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Isabel BowleyIndia2026-04-10King, Christopher A Esq UNQUALIFIED78Asiya Javayant
1001Darci PoquetteRussia2026-04-21Dorl, James J Esq RENEWAL48Ivan Magalhaes
1002Maria MarrierUnited Kingdom2026-04-24Chanay, Jeffrey A Esq RENEWAL51Ivan Magalhaes
1003Jones VocelkaFrance2026-04-10Rangoni Of Florence NEW96Ivan Magalhaes
1004Ashley DoeSpain2026-04-03Chanay, Jeffrey A Esq UNQUALIFIED88Stephen Shaw
1005Mujtaba NickaGermany2026-04-06Morlong Associates QUALIFIED35Bernardo Dominic
1006Silvio SlusarskiFrance2026-04-13King, Christopher A Esq QUALIFIED95Asiya Javayant
1007Rodrigues CampainBrazil2026-04-14Morlong Associates UNQUALIFIED93Stephen Shaw
1008David DarakjyGermany2026-04-24Feiner Bros QUALIFIED49Ioni Bowcher
1009Alejandro PerinJapan2026-04-26King, Christopher A Esq NEW61Asiya Javayant
1010Maisha RulapaughFrance2026-04-19Commercial Press QUALIFIED64Onyama Limba
1011Costa DilliardArgentina2026-04-01Feltz Printing Service NEW65Elwin Sharvill
1012Ricardo GauchoUnited Kingdom2026-04-02Printing Dimensions UNQUALIFIED96Xuxue Feng
1013Claire TollnerBrazil2026-04-27Truhlar And Truhlar Attys PROPOSAL51Bernardo Dominic
1014Munro FerenczJapan2026-04-01King, Christopher A Esq UNQUALIFIED77Onyama Limba
1015Clifford RimBrazil2026-04-12Chemel, James L Cpa NEGOTIATION76Xuxue Feng
1016Isabel BowleyIndia2026-04-07Commercial Press QUALIFIED22Bernardo Dominic
1017Francesco ShinkoItaly2026-04-03Commercial Press PROPOSAL56Elwin Sharvill
1018Murillo MaletGermany2026-04-18Commercial Press NEW22Anna Fali
1019Johnson SergiCanada2026-04-25Morlong Associates RENEWAL48Xuxue Feng
1020Adams MorascaJapan2026-04-10Buckley Miller Wright PROPOSAL77Stephen Shaw
1021Sinclair WaycottCanada2026-04-03Rousseaux, Michael Esq QUALIFIED86Xuxue Feng
1022Faith GillianArgentina2026-04-02Buckley Miller Wright UNQUALIFIED77Anna Fali
1023Misaki RoysterSpain2026-04-04Feiner Bros NEGOTIATION99Xuxue Feng
1024Murillo MaletGermany2026-04-16Chemel, James L Cpa QUALIFIED13Elwin Sharvill
1025Chavez BriddickCanada2026-04-04Feiner Bros UNQUALIFIED32Amy Elsner
1026Izzy GarufiSpain2026-04-11Buckley Miller Wright PROPOSAL47Elwin Sharvill
1027Cody SaylorsUnited Kingdom2026-04-16Dorl, James J Esq RENEWAL35Xuxue Feng
1028Isabel BowleyFrance2026-04-15Feltz Printing Service UNQUALIFIED97Ivan Magalhaes
1029Ashley DoeFrance2026-04-08Printing Dimensions PROPOSAL92Asiya Javayant
1030Ashley DoeGermany2026-04-20Chapman, Ross E Esq NEW96Ivan Magalhaes
1031Stacey MacleadItaly2026-04-28Dorl, James J Esq UNQUALIFIED77Ioni Bowcher
1032Murillo MaletFrance2026-04-12Chanay, Jeffrey A Esq RENEWAL38Xuxue Feng
1033Ashley DoeSpain2026-04-11Feltz Printing Service QUALIFIED40Stephen Shaw
1034Kaitlin OstroskyGermany2026-04-26Morlong Associates PROPOSAL85Ivan Magalhaes
1035Wickens NestleSpain2026-04-24Feltz Printing Service QUALIFIED2Anna Fali
1036Julie StensethUnited Kingdom2026-04-27Chapman, Ross E Esq NEW58Asiya Javayant
1037Kadeem FlosiUnited Kingdom2026-04-02Dorl, James J Esq QUALIFIED20Bernardo Dominic
1038Leja CaldareraArgentina2026-04-15Benton, John B Jr NEW18Onyama Limba
1039Jefferson SchemmerIndia2026-04-06King, Christopher A Esq NEGOTIATION93Amy Elsner
1040Munro FerenczCanada2026-04-11Dorl, James J Esq NEGOTIATION30Elwin Sharvill
1041David DarakjyUnited Kingdom2026-04-06Feltz Printing Service NEW99Xuxue Feng
1042Smith GlickSpain2026-04-07Feiner Bros NEGOTIATION92Onyama Limba
1043Misaki RoysterItaly2026-04-17Benton, John B Jr NEGOTIATION3Asiya Javayant
1044Jeanfrancois VenereJapan2026-04-07Chemel, James L Cpa NEW39Asiya Javayant
1045Stacey MacleadArgentina2026-04-09Chanay, Jeffrey A Esq UNQUALIFIED4Onyama Limba
1046Mayumi KolmetzSpain2026-04-27Dorl, James J Esq PROPOSAL26Asiya Javayant
1047Salvatore StockhamItaly2026-04-25Rousseaux, Michael Esq NEW91Stephen Shaw
1048Rodrigues CampainUnited Kingdom2026-04-18Chanay, Jeffrey A Esq NEGOTIATION36Asiya Javayant
1049Leon OldroydCanada2026-04-06King, Christopher A Esq NEGOTIATION93Bernardo Dominic
Frozen Rows
NameCountryRepresentativeStatus
Claire TollnerJapanIoni Bowcher PROPOSAL
Greenwood BologniaCanadaAnna Fali NEW
Emily WhobreyGermanyAmy Elsner NEW
Kaitlin OstroskyIndiaAmy Elsner UNQUALIFIED
Izzy GarufiItalyStephen Shaw QUALIFIED
Jeanfrancois VenereUnited KingdomOnyama Limba RENEWAL
Emily WhobreyGermanyIvan Magalhaes QUALIFIED
Stacey MacleadUnited KingdomOnyama Limba RENEWAL
Jones VocelkaBrazilAmy Elsner NEW
Darci PoquetteBrazilAsiya Javayant PROPOSAL
Ivar PaprockiGermanyAnna Fali NEGOTIATION
Francesco ShinkoArgentinaAmy Elsner PROPOSAL
Wickens NestleAustraliaIvan Magalhaes PROPOSAL
Ashley DoeAustraliaXuxue Feng NEW
Sinclair WaycottRussiaAsiya Javayant NEGOTIATION
Aditya KuskoCanadaIvan Magalhaes RENEWAL
Johnson SergiArgentinaIoni Bowcher QUALIFIED
Izzy GarufiGermanyAsiya Javayant UNQUALIFIED
Darci PoquetteItalyAmy Elsner UNQUALIFIED
Nicolas IturbideJapanAmy Elsner UNQUALIFIED
Tony FollerCanadaAnna Fali QUALIFIED
Chavez BriddickItalyIvan Magalhaes QUALIFIED
Aika InouyeFranceBernardo Dominic RENEWAL
Ashley DoeFranceStephen Shaw RENEWAL
Arvin AlbaresUnited KingdomOnyama Limba NEGOTIATION
Chavez BriddickCanadaElwin Sharvill UNQUALIFIED
Leja CaldareraCanadaAsiya Javayant QUALIFIED
Francesco ShinkoCanadaOnyama Limba RENEWAL
Salvatore StockhamFranceStephen Shaw NEGOTIATION
Mayumi KolmetzFranceXuxue Feng PROPOSAL
Jeanfrancois VenereBrazilAnna Fali NEGOTIATION
David DarakjyArgentinaIoni Bowcher QUALIFIED
Nicolas IturbideRussiaOnyama Limba PROPOSAL
Kadeem FlosiFranceStephen Shaw UNQUALIFIED
Arvin AlbaresAustraliaBernardo Dominic QUALIFIED
Ashley DoeBrazilXuxue Feng PROPOSAL
Aruna FigeroaSpainOnyama Limba UNQUALIFIED
Deepesh ChuiBrazilAnna Fali NEGOTIATION
Costa DilliardIndiaIoni Bowcher PROPOSAL
Adams MorascaJapanXuxue Feng PROPOSAL
Deepesh ChuiIndiaIvan Magalhaes NEGOTIATION
Jefferson SchemmerSpainAnna Fali RENEWAL
Ashley DoeAustraliaIvan Magalhaes PROPOSAL
Ricardo GauchoGermanyAsiya Javayant PROPOSAL
Aditya KuskoGermanyIvan Magalhaes UNQUALIFIED
Stacey MacleadCanadaStephen Shaw PROPOSAL
James ButtJapanIoni Bowcher UNQUALIFIED
Sinclair WaycottUnited KingdomIoni Bowcher PROPOSAL
Ivar PaprockiItalyAmy Elsner RENEWAL
Johnson SergiItalyAnna Fali NEW
Frozen Columns
Name
Greenwood Bolognia
Jennifer Amigon
Maria Marrier
Clifford Rim
Jeanfrancois Venere
Mayumi Kolmetz
Maria Marrier
Adams Morasca
Mayumi Kolmetz
Rodrigues Campain
Sinclair Waycott
Ivar Paprocki
Stacey Maclead
Jennifer Amigon
David Darakjy
Kadeem Flosi
Octavia Malet
Jennifer Amigon
Maria Marrier
Rodrigues Campain
Jones Vocelka
Darci Poquette
Stacey Maclead
Emily Whobrey
Emily Whobrey
Maisha Rulapaugh
Murillo Malet
Clifford Rim
Darci Poquette
Kaitlin Ostrosky
Rodrigues Campain
Kaitlin Ostrosky
Salvatore Stockham
Ashley Doe
Deepesh Chui
Julie Stenseth
Munro Ferencz
Mujtaba Nicka
Faith Gillian
Chavez Briddick
Misaki Royster
Johnson Sergi
Morrow Ruta
Isabel Bowley
Greenwood Bolognia
Antonio Caudy
Isabel Bowley
Smith Glick
Darci Poquette
Kadeem Flosi
IdCountryDate
1000Australia2026-04-26
1001France2026-04-14
1002United Kingdom2026-04-03
1003Spain2026-04-13
1004Spain2026-04-27
1005Russia2026-04-20
1006Italy2026-04-05
1007Russia2026-04-03
1008United Kingdom2026-04-13
1009France2026-04-03
1010Japan2026-04-12
1011Brazil2026-04-06
1012Japan2026-04-29
1013Argentina2026-04-03
1014Italy2026-04-27
1015Germany2026-04-06
1016France2026-04-21
1017Australia2026-04-03
1018Italy2026-04-28
1019India2026-04-14
1020France2026-04-16
1021Italy2026-04-16
1022Russia2026-04-28
1023Russia2026-04-08
1024France2026-04-21
1025India2026-04-01
1026Brazil2026-04-20
1027India2026-04-12
1028France2026-04-30
1029Brazil2026-04-18
1030Japan2026-04-14
1031Japan2026-04-02
1032France2026-04-17
1033Canada2026-04-20
1034Brazil2026-04-19
1035Germany2026-04-16
1036India2026-04-28
1037United Kingdom2026-04-04
1038Spain2026-04-09
1039Spain2026-04-03
1040Russia2026-04-16
1041Germany2026-04-02
1042France2026-04-15
1043Australia2026-04-03
1044France2026-04-09
1045India2026-04-17
1046Argentina2026-04-08
1047India2026-04-30
1048Argentina2026-04-20
1049Canada2026-04-18

On-Demand Data

NameIdCountryDate
Rodrigues Campain1000Spain2026-04-11
Francesco Shinko1001France2026-04-17
Antonio Caudy1002Canada2026-04-12
Sinclair Waycott1003Japan2026-04-10
Jefferson Schemmer1004Germany2026-04-15
Aditya Kusko1005Germany2026-04-03
Costa Dilliard1006France2026-04-27
Mayumi Kolmetz1007France2026-04-28
Costa Dilliard1008Germany2026-04-04
Emily Whobrey1009France2026-04-25
Julie Stenseth1010Australia2026-04-24
Kaitlin Ostrosky1011Argentina2026-04-13
Kaitlin Ostrosky1012Germany2026-04-06
Kaitlin Ostrosky1013Canada2026-04-15
Deepesh Chui1014Australia2026-04-04
Mayumi Kolmetz1015Japan2026-04-08
Silvio Slusarski1016Germany2026-04-26
Johnson Sergi1017India2026-04-13
Clifford Rim1018Canada2026-04-20
Maria Marrier1019Brazil2026-04-24
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Nicolas IturbideItalyBernardo Dominic UNQUALIFIED
Antonio CaudyCanadaStephen Shaw PROPOSAL
Mujtaba NickaCanadaIoni Bowcher NEW
Wickens NestleItalyAmy Elsner RENEWAL
Stacey MacleadSpainStephen Shaw RENEWAL
Johnson SergiIndiaIoni Bowcher PROPOSAL
Morrow RutaSpainAmy Elsner PROPOSAL
Kadeem FlosiRussiaAnna Fali RENEWAL
Morrow RutaBrazilBernardo Dominic RENEWAL
Stacey MacleadCanadaXuxue Feng NEW
Clifford RimCanadaIoni Bowcher NEGOTIATION
Aruna FigeroaAustraliaIvan Magalhaes NEW
Octavia MaletBrazilIoni Bowcher UNQUALIFIED
Rodrigues CampainFranceXuxue Feng UNQUALIFIED
Jones VocelkaArgentinaAsiya Javayant QUALIFIED
Julie StensethUnited KingdomXuxue Feng QUALIFIED
Tony FollerGermanyXuxue Feng QUALIFIED
Morrow RutaItalyIvan Magalhaes NEW
Maria MarrierJapanAmy Elsner NEW
James ButtAustraliaAnna Fali PROPOSAL
Izzy GarufiArgentinaOnyama Limba NEW
Ashley DoeRussiaAsiya Javayant NEGOTIATION
Jones VocelkaFranceIvan Magalhaes RENEWAL
Claire TollnerCanadaStephen Shaw PROPOSAL
Nicolas IturbideRussiaAsiya Javayant NEW
Alejandro PerinGermanyIvan Magalhaes NEGOTIATION
Jones VocelkaArgentinaOnyama Limba NEGOTIATION
Cody SaylorsSpainAsiya Javayant PROPOSAL
Clifford RimJapanOnyama Limba NEW
Murillo MaletUnited KingdomElwin Sharvill NEW
James ButtJapanStephen Shaw UNQUALIFIED
Aditya KuskoFranceStephen Shaw QUALIFIED
Wickens NestleSpainAmy Elsner RENEWAL
Rodrigues CampainRussiaXuxue Feng NEGOTIATION
Munro FerenczBrazilBernardo Dominic PROPOSAL
Juan WieserAustraliaAmy Elsner UNQUALIFIED
Juan WieserGermanyIoni Bowcher PROPOSAL
Wickens NestleItalyStephen Shaw PROPOSAL
Jefferson SchemmerSpainIoni Bowcher PROPOSAL
Octavia MaletItalyIoni Bowcher UNQUALIFIED

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