Locale

Change the locale of the datepicker, schedule and client side validation messages.

Language
English
English
English
French
German
German
German
Italian
Korean
Spanish
Catalan
Dutch
Portuguese
Portuguese
Arabic
Arabic
Bulgarian
Czech
Greek
Persian
Finnish
Danish
Hindi
Indonesian
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
Vietnamese
Chinese
Chinese

Input Style

Themes

PrimeOne
Saga Saga
Vela Vela
Arya Arya
Bootstrap
bootstrap4-blue-light Bootstrap Blue
bootstrap4-purple-light Bootstrap Purple
bootstrap4-blue-dark Bootstrap Blue
bootstrap4-purple-dark Bootstrap Purple
Material Design
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple
Material Design Compact
material-indigo-light Indigo
material-deeppurple-light' Deep Purple
material-indigo-dark Indigo
material-deeppurple-dark' Deep Purple

DataTable Scroll

Both vertical and horizontal scrolling of the data is supported with optional frozen rows-columns and on-demand loading features.

Vertical
NameCountryRepresentativeStatus
Kaitlin M MacleadBrazilAsiya Javayant PROPOSAL
Salvatore N StockhamCanadaIoni Bowcher RENEWAL
Jones E PoquetteArgentinaElwin Sharvill RENEWAL
Salvatore H MaletGermanyAsiya Javayant UNQUALIFIED
Costa C SaylorsFranceBernardo Dominic QUALIFIED
Mayumi J WaycottUnited KingdomAmy Elsner RENEWAL
Morrow A StockhamAustraliaAsiya Javayant NEW
Aruna W RimBrazilBernardo Dominic NEW
Tony U FlosiGermanyOnyama Limba NEW
Clifford A IturbideUnited KingdomElwin Sharvill RENEWAL
Antonio C CaldareraArgentinaXuxue Feng PROPOSAL
Jeanfrancois Z FerenczAustraliaXuxue Feng NEW
Sinclair M MarrierFranceAnna Fali NEGOTIATION
Julie N VocelkaFranceStephen Shaw PROPOSAL
James I RulapaughIndiaBernardo Dominic NEGOTIATION
Aruna O GauchoUnited KingdomStephen Shaw RENEWAL
Ivar T WieserIndiaElwin Sharvill PROPOSAL
Aika L DoeGermanyIoni Bowcher QUALIFIED
Adams O SchemmerFranceAmy Elsner QUALIFIED
Maisha J ShinkoCanadaAsiya Javayant PROPOSAL
Aika H FlosiAustraliaIoni Bowcher NEW
Mujtaba E VenereIndiaElwin Sharvill PROPOSAL
Clifford R BologniaAustraliaAnna Fali UNQUALIFIED
Wickens B PaprockiItalyStephen Shaw UNQUALIFIED
Morrow M GarufiBrazilElwin Sharvill QUALIFIED
Maisha P FerenczRussiaAmy Elsner QUALIFIED
Kaitlin P IturbideRussiaBernardo Dominic RENEWAL
James G VocelkaItalyStephen Shaw NEGOTIATION
Aika W RimUnited KingdomOnyama Limba PROPOSAL
Johnson E DoeArgentinaOnyama Limba RENEWAL
Tony F SlusarskiRussiaXuxue Feng PROPOSAL
Antonio U FerenczRussiaAmy Elsner NEW
Silvio Q DoeAustraliaXuxue Feng RENEWAL
Darci G FlosiAustraliaAmy Elsner RENEWAL
Aruna H CaldareraJapanBernardo Dominic NEW
Salvatore G KuskoUnited KingdomIvan Magalhaes NEGOTIATION
Darci X SchemmerGermanyElwin Sharvill RENEWAL
Adams G GlickCanadaElwin Sharvill UNQUALIFIED
Arvin N FlosiUnited KingdomAmy Elsner QUALIFIED
Ricardo S VenereIndiaElwin Sharvill PROPOSAL
Maisha T BriddickSpainIoni Bowcher RENEWAL
Julie J BowleySpainStephen Shaw UNQUALIFIED
Deepesh D GauchoFranceBernardo Dominic PROPOSAL
Silvio Q WhobreyRussiaElwin Sharvill RENEWAL
Aruna M CaudySpainXuxue Feng QUALIFIED
Silvio Z FigeroaUnited KingdomAmy Elsner NEGOTIATION
Antonio L CaudyCanadaAmy Elsner NEGOTIATION
Isabel C InouyeGermanyStephen Shaw RENEWAL
Kadeem J FollerArgentinaAmy Elsner PROPOSAL
Murillo F FlosiCanadaOnyama Limba UNQUALIFIED
Horizontal
NameCountryRepresentativeStatus
Emily C MaletIndiaOnyama Limba QUALIFIED
Faith T CaudyAustraliaStephen Shaw UNQUALIFIED
Kaitlin J FigeroaArgentinaXuxue Feng QUALIFIED
Cody W GarufiItalyIvan Magalhaes NEGOTIATION
Salvatore D CaudyGermanyAsiya Javayant NEW
Johnson Q PaprockiGermanyIvan Magalhaes QUALIFIED
Darci C BowleyGermanyIvan Magalhaes RENEWAL
Jones R VocelkaAustraliaIvan Magalhaes NEGOTIATION
Aika U GauchoItalyAnna Fali QUALIFIED
Juan B NickaGermanyStephen Shaw QUALIFIED
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Izzy E DarakjyIndia2026-08-27Chapman, Ross E Esq UNQUALIFIED94Ioni Bowcher
1001Murillo G StensethJapan2026-08-19King, Christopher A Esq NEGOTIATION91Xuxue Feng
1002Julie P GarufiFrance2026-08-26Chemel, James L Cpa NEW34Xuxue Feng
1003Isabel P WaycottBrazil2026-08-15Rousseaux, Michael Esq UNQUALIFIED43Elwin Sharvill
1004Mujtaba D MaletRussia2026-08-25Feiner Bros RENEWAL98Elwin Sharvill
1005Kaitlin K CaudyIndia2026-08-05Truhlar And Truhlar Attys NEW81Stephen Shaw
1006Aika N ChuiFrance2026-08-17Chanay, Jeffrey A Esq NEGOTIATION0Xuxue Feng
1007Rodrigues B GillianGermany2026-08-04Rangoni Of Florence UNQUALIFIED24Xuxue Feng
1008Cody R BowleyItaly2026-08-14Dorl, James J Esq NEGOTIATION13Anna Fali
1009Aditya B SergiUnited Kingdom2026-08-18Printing Dimensions NEW49Stephen Shaw
1010Murillo R MacleadAustralia2026-08-23Rousseaux, Michael Esq UNQUALIFIED58Ioni Bowcher
1011Aruna F RimAustralia2026-08-23Feiner Bros UNQUALIFIED8Ioni Bowcher
1012Jennifer Y CampainUnited Kingdom2026-08-04King, Christopher A Esq QUALIFIED81Amy Elsner
1013Aditya L RutaUnited Kingdom2026-08-18Dorl, James J Esq PROPOSAL89Onyama Limba
1014Johnson J GlickCanada2026-08-22Commercial Press RENEWAL36Asiya Javayant
1015Arvin C MacleadItaly2026-08-21King, Christopher A Esq PROPOSAL18Stephen Shaw
1016Greenwood S MacleadSpain2026-08-10Chanay, Jeffrey A Esq PROPOSAL55Stephen Shaw
1017Chavez Y NickaUnited Kingdom2026-08-06Chapman, Ross E Esq NEW19Ivan Magalhaes
1018Jeanfrancois A ChuiFrance2026-08-15King, Christopher A Esq QUALIFIED93Stephen Shaw
1019Arvin W GarufiJapan2026-08-18Chemel, James L Cpa QUALIFIED88Xuxue Feng
1020Chavez P TollnerGermany2026-08-20Chemel, James L Cpa QUALIFIED82Xuxue Feng
1021Darci A StensethBrazil2026-08-31Commercial Press UNQUALIFIED55Onyama Limba
1022David F StensethItaly2026-08-05Rousseaux, Michael Esq NEGOTIATION48Elwin Sharvill
1023Julie S FigeroaBrazil2026-08-21Chapman, Ross E Esq RENEWAL83Ivan Magalhaes
1024Aruna Q VenereIndia2026-08-15Printing Dimensions NEW68Stephen Shaw
1025Stacey T CaudyItaly2026-08-25Morlong Associates PROPOSAL52Ioni Bowcher
1026Jones J FigeroaItaly2026-08-08Buckley Miller Wright QUALIFIED73Ioni Bowcher
1027Octavia Q AmigonUnited Kingdom2026-08-12Buckley Miller Wright PROPOSAL50Xuxue Feng
1028Juan F StockhamSpain2026-08-28Rangoni Of Florence RENEWAL54Onyama Limba
1029Leon G BowleyIndia2026-08-27Printing Dimensions QUALIFIED87Xuxue Feng
1030Stacey D WhobreyItaly2026-08-27Rousseaux, Michael Esq NEW2Anna Fali
1031Aruna H StensethBrazil2026-08-29Morlong Associates PROPOSAL64Onyama Limba
1032Rodrigues L RimSpain2026-08-20King, Christopher A Esq NEW14Bernardo Dominic
1033Aditya M CaudyBrazil2026-08-22Rousseaux, Michael Esq NEGOTIATION86Asiya Javayant
1034Wickens Y PerinJapan2026-08-05Commercial Press RENEWAL33Asiya Javayant
1035Kadeem T KuskoFrance2026-08-04Chapman, Ross E Esq UNQUALIFIED61Elwin Sharvill
1036Darci F IturbideItaly2026-08-12Printing Dimensions NEGOTIATION97Anna Fali
1037Isabel O DarakjyGermany2026-08-18Buckley Miller Wright UNQUALIFIED73Xuxue Feng
1038Kadeem U ButtItaly2026-08-13King, Christopher A Esq PROPOSAL51Stephen Shaw
1039Deepesh W BologniaIndia2026-08-03Rousseaux, Michael Esq QUALIFIED58Stephen Shaw
1040Salvatore S GarufiUnited Kingdom2026-08-12Feltz Printing Service RENEWAL70Bernardo Dominic
1041David X WhobreyItaly2026-08-08Rousseaux, Michael Esq UNQUALIFIED25Anna Fali
1042Ricardo J StensethArgentina2026-08-12Commercial Press PROPOSAL15Bernardo Dominic
1043James H GarufiBrazil2026-08-03King, Christopher A Esq NEGOTIATION10Asiya Javayant
1044Julie A InouyeCanada2026-08-03Truhlar And Truhlar Attys NEW46Stephen Shaw
1045Deepesh G InouyeBrazil2026-08-14Buckley Miller Wright QUALIFIED29Amy Elsner
1046Ricardo Z PoquetteIndia2026-08-28Buckley Miller Wright PROPOSAL52Asiya Javayant
1047Alejandro C CaldareraGermany2026-08-21Truhlar And Truhlar Attys NEW93Onyama Limba
1048Stacey I BologniaArgentina2026-08-06Printing Dimensions RENEWAL63Ivan Magalhaes
1049Isabel T KolmetzUnited Kingdom2026-08-20Rousseaux, Michael Esq QUALIFIED62Ioni Bowcher
Frozen Rows
NameCountryRepresentativeStatus
Jennifer C TollnerItalyAsiya Javayant QUALIFIED
Costa H SaylorsAustraliaElwin Sharvill RENEWAL
Aruna P StensethBrazilBernardo Dominic NEW
Munro H SaylorsFranceAmy Elsner NEW
Octavia X ButtArgentinaXuxue Feng NEGOTIATION
Kadeem Z GarufiFranceXuxue Feng UNQUALIFIED
Misaki O DarakjyJapanOnyama Limba PROPOSAL
Chavez Q DilliardUnited KingdomAmy Elsner UNQUALIFIED
David A RimArgentinaAmy Elsner QUALIFIED
Emily J OstroskyAustraliaOnyama Limba PROPOSAL
Isabel T SlusarskiFranceOnyama Limba PROPOSAL
Arvin D MorascaAustraliaOnyama Limba NEW
Cody W BriddickGermanyOnyama Limba NEW
Aika Y GlickSpainElwin Sharvill UNQUALIFIED
Claire J WieserBrazilBernardo Dominic RENEWAL
Ivar O CaudyJapanXuxue Feng QUALIFIED
Munro G VocelkaAustraliaIoni Bowcher PROPOSAL
Izzy A AlbaresUnited KingdomBernardo Dominic PROPOSAL
Jeanfrancois A AmigonItalyBernardo Dominic PROPOSAL
Ricardo C MorascaItalyAsiya Javayant PROPOSAL
Munro M KuskoSpainBernardo Dominic QUALIFIED
Francesco E WieserArgentinaXuxue Feng QUALIFIED
Leon R DarakjyUnited KingdomAmy Elsner PROPOSAL
Nicolas I NickaIndiaOnyama Limba RENEWAL
Julie Y PoquetteAustraliaAmy Elsner RENEWAL
Maria B MaletFranceStephen Shaw NEGOTIATION
Julie F DoeSpainAmy Elsner UNQUALIFIED
Jennifer L RimJapanElwin Sharvill NEW
Tony P PerinAustraliaElwin Sharvill UNQUALIFIED
Aruna M ButtUnited KingdomOnyama Limba RENEWAL
Francesco K StensethCanadaAmy Elsner QUALIFIED
Maisha Y NestleGermanyBernardo Dominic QUALIFIED
Silvio Q NickaSpainIvan Magalhaes RENEWAL
Izzy F SchemmerBrazilAnna Fali PROPOSAL
Jeanfrancois M SchemmerAustraliaAsiya Javayant NEGOTIATION
Jefferson O BriddickAustraliaOnyama Limba NEW
Adams I SlusarskiArgentinaIvan Magalhaes RENEWAL
Julie B OldroydIndiaXuxue Feng QUALIFIED
Isabel J DilliardAustraliaElwin Sharvill RENEWAL
Aruna B AlbaresItalyXuxue Feng UNQUALIFIED
Mayumi Q MaletRussiaElwin Sharvill NEGOTIATION
Chavez J NickaJapanBernardo Dominic UNQUALIFIED
Maria A KolmetzCanadaBernardo Dominic UNQUALIFIED
Francesco A OldroydArgentinaAnna Fali QUALIFIED
James M TollnerCanadaXuxue Feng QUALIFIED
Jeanfrancois G GauchoArgentinaOnyama Limba UNQUALIFIED
Jefferson U BologniaRussiaIoni Bowcher RENEWAL
Maria T KuskoItalyOnyama Limba QUALIFIED
Aditya Z StensethUnited KingdomBernardo Dominic QUALIFIED
Maria Z MacleadJapanOnyama Limba NEW
Frozen Columns
Name
Ashley U Gillian
Smith A Foller
Sinclair T Vocelka
Rodrigues P Ferencz
Juan G Whobrey
Antonio J Morasca
Juan F Perin
Isabel T Darakjy
Octavia G Butt
David M Bolognia
Aditya U Doe
Leon S Perin
Johnson R Garufi
Faith D Caldarera
Ivar G Nicka
Morrow M Wieser
Kaitlin C Butt
Faith F Stenseth
Maisha W Nicka
Nicolas N Gillian
Silvio W Ferencz
Rodrigues L Malet
Maria U Morasca
Kadeem W Bowley
Leja V Saylors
Johnson H Caldarera
Deepesh K Rulapaugh
Misaki F Gillian
Octavia G Malet
Alejandro H Garufi
Emily S Foller
Sinclair R Poquette
Ricardo F Stenseth
Greenwood U Wieser
Stacey G Figeroa
Antonio O Iturbide
Murillo A Venere
Misaki A Ruta
Jones W Nestle
Francesco F Chui
Claire R Chui
Costa W Inouye
Clifford G Butt
Maria O Rim
Murillo B Nicka
Jeanfrancois F Paprocki
Mujtaba Y Malet
Wickens A Shinko
Jones L Glick
Arvin G Iturbide
IdCountryDate
1000United Kingdom2026-08-18
1001United Kingdom2026-08-02
1002Canada2026-08-27
1003Germany2026-08-09
1004Russia2026-08-31
1005Germany2026-08-27
1006Spain2026-08-15
1007Japan2026-08-11
1008Spain2026-08-16
1009France2026-08-03
1010Brazil2026-08-23
1011Italy2026-08-28
1012Italy2026-08-02
1013Australia2026-08-22
1014Australia2026-08-24
1015Canada2026-08-21
1016Russia2026-08-03
1017Spain2026-08-29
1018Spain2026-08-26
1019Japan2026-08-06
1020Argentina2026-08-02
1021United Kingdom2026-08-07
1022Canada2026-08-18
1023Italy2026-08-16
1024United Kingdom2026-08-11
1025Argentina2026-08-14
1026Argentina2026-08-09
1027Italy2026-08-20
1028United Kingdom2026-08-19
1029Brazil2026-08-16
1030Brazil2026-08-26
1031Canada2026-08-14
1032Brazil2026-08-06
1033Argentina2026-08-09
1034Japan2026-08-19
1035Spain2026-08-26
1036United Kingdom2026-08-17
1037India2026-08-28
1038Japan2026-08-19
1039Italy2026-08-28
1040Argentina2026-08-31
1041Brazil2026-08-11
1042India2026-08-17
1043Germany2026-08-07
1044Brazil2026-08-05
1045India2026-08-19
1046Spain2026-08-08
1047Japan2026-08-19
1048Germany2026-08-27
1049India2026-08-15

On-Demand Data

NameIdCountryDate
Ricardo X Ferencz1000Spain2026-08-24
Darci D Glick1001Russia2026-08-18
Ivar B Whobrey1002Argentina2026-08-19
Ricardo J Poquette1003Argentina2026-08-04
Ivar H Nicka1004Canada2026-08-18
Octavia X Gaucho1005United Kingdom2026-08-07
Isabel O Morasca1006Germany2026-08-08
Wickens S Rulapaugh1007Germany2026-08-18
Silvio Z Gillian1008Germany2026-08-29
Misaki O Caudy1009Italy2026-08-10
Adams T Saylors1010Argentina2026-08-31
Antonio S Vocelka1011United Kingdom2026-08-12
Leja Y Glick1012Brazil2026-08-27
Murillo R Poquette1013Argentina2026-08-07
Julie L Paprocki1014Spain2026-08-07
Wickens I Waycott1015Argentina2026-08-28
Jennifer I Amigon1016Germany2026-08-26
Johnson A Darakjy1017Japan2026-08-09
Chavez C Bolognia1018India2026-08-12
Mujtaba K Gaucho1019United Kingdom2026-08-18
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Cody T FerenczCanadaAnna Fali PROPOSAL
Leja D RoysterAustraliaAnna Fali QUALIFIED
Johnson G BriddickAustraliaAmy Elsner RENEWAL
Rodrigues G NickaCanadaBernardo Dominic PROPOSAL
Aruna B BriddickIndiaAsiya Javayant NEGOTIATION
Clifford V NestleAustraliaBernardo Dominic QUALIFIED
Aditya O KuskoAustraliaElwin Sharvill QUALIFIED
Chavez U WieserArgentinaAmy Elsner UNQUALIFIED
Wickens U KolmetzIndiaBernardo Dominic UNQUALIFIED
James Z RimAustraliaAmy Elsner UNQUALIFIED
Salvatore Q BologniaArgentinaAnna Fali NEGOTIATION
Murillo P ChuiCanadaAmy Elsner NEGOTIATION
Faith E RoysterArgentinaAmy Elsner RENEWAL
Morrow S DarakjyBrazilIvan Magalhaes PROPOSAL
David D PaprockiItalyAsiya Javayant UNQUALIFIED
Cody B ButtUnited KingdomXuxue Feng UNQUALIFIED
Juan B DilliardUnited KingdomXuxue Feng PROPOSAL
Antonio R SchemmerArgentinaXuxue Feng PROPOSAL
Chavez P NestleArgentinaIoni Bowcher NEGOTIATION
Octavia H AlbaresUnited KingdomAnna Fali NEW
David L SergiBrazilAnna Fali NEGOTIATION
Stacey H MarrierUnited KingdomAmy Elsner UNQUALIFIED
Octavia Y RimArgentinaElwin Sharvill RENEWAL
Aruna S AlbaresArgentinaAsiya Javayant NEGOTIATION
Alejandro E StockhamCanadaIvan Magalhaes NEGOTIATION
Maria I WaycottRussiaAsiya Javayant NEW
Salvatore U SchemmerJapanOnyama Limba PROPOSAL
Deepesh K SergiAustraliaAsiya Javayant UNQUALIFIED
Tony J NickaFranceXuxue Feng PROPOSAL
David Y KuskoBrazilXuxue Feng UNQUALIFIED
Wickens H StensethAustraliaStephen Shaw UNQUALIFIED
Costa X FlosiArgentinaXuxue Feng NEGOTIATION
Juan Y WaycottJapanIvan Magalhaes NEW
James D PoquetteUnited KingdomBernardo Dominic UNQUALIFIED
Kadeem M KuskoRussiaXuxue Feng QUALIFIED
Faith U RimIndiaAnna Fali NEGOTIATION
Jefferson R BriddickBrazilIoni Bowcher UNQUALIFIED
David Z BriddickFranceAsiya Javayant PROPOSAL
Nicolas W IturbideFranceStephen Shaw PROPOSAL
Antonio R DarakjyCanadaOnyama Limba RENEWAL

<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.name().toLowerCase()}">#{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.name().toLowerCase()}">#{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.name().toLowerCase()}">#{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.name().toLowerCase()}">#{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.name().toLowerCase()}">#{customer.status}</span>
            </p:column>
        </p:dataTable>
    </div>

</h:form>