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
Jennifer U CampainAustraliaBernardo Dominic QUALIFIED
Johnson D PerinFranceIoni Bowcher UNQUALIFIED
Chavez U DarakjyAustraliaAsiya Javayant NEW
Johnson Z MacleadRussiaBernardo Dominic NEW
Sinclair R StensethArgentinaXuxue Feng RENEWAL
Murillo I SchemmerBrazilXuxue Feng NEGOTIATION
Julie X KolmetzRussiaIoni Bowcher QUALIFIED
Izzy O TollnerRussiaIvan Magalhaes QUALIFIED
Salvatore N StockhamBrazilStephen Shaw NEW
Sinclair K RutaItalyIvan Magalhaes UNQUALIFIED
Clifford C IturbideGermanyAmy Elsner RENEWAL
Jennifer R SlusarskiArgentinaIoni Bowcher UNQUALIFIED
Aika G FigeroaCanadaAsiya Javayant UNQUALIFIED
Ivar A GillianIndiaOnyama Limba UNQUALIFIED
Izzy R RimSpainAnna Fali UNQUALIFIED
Johnson S ChuiUnited KingdomAmy Elsner NEGOTIATION
Aika X DoeCanadaIvan Magalhaes UNQUALIFIED
Antonio Y OldroydArgentinaAsiya Javayant UNQUALIFIED
Aditya G StockhamIndiaOnyama Limba PROPOSAL
Mujtaba J MaletJapanOnyama Limba RENEWAL
Julie W BowleyCanadaIoni Bowcher NEGOTIATION
Kadeem Z StensethAustraliaOnyama Limba NEGOTIATION
Ricardo C IturbideAustraliaAmy Elsner PROPOSAL
Murillo F SlusarskiRussiaStephen Shaw QUALIFIED
Costa J BriddickAustraliaStephen Shaw UNQUALIFIED
Emily K VenereBrazilIoni Bowcher NEGOTIATION
Isabel W KolmetzRussiaXuxue Feng QUALIFIED
Faith B SlusarskiJapanStephen Shaw QUALIFIED
Alejandro E PaprockiAustraliaIvan Magalhaes QUALIFIED
Munro A StensethFranceAmy Elsner QUALIFIED
Murillo E CaudyCanadaBernardo Dominic NEGOTIATION
Smith K WieserArgentinaOnyama Limba PROPOSAL
Ivar I GarufiRussiaAnna Fali NEGOTIATION
Wickens S CaudyFranceIoni Bowcher RENEWAL
Kadeem L WhobreySpainAnna Fali NEW
Murillo S MaletIndiaAmy Elsner RENEWAL
Adams Y SchemmerCanadaBernardo Dominic NEW
Morrow H BowleyBrazilIvan Magalhaes RENEWAL
Johnson Z AmigonSpainElwin Sharvill NEW
Johnson G CaudyBrazilElwin Sharvill PROPOSAL
Ivar S SlusarskiCanadaAmy Elsner RENEWAL
Claire D CaldareraItalyOnyama Limba RENEWAL
Sinclair E ShinkoSpainIvan Magalhaes NEGOTIATION
Silvio S OldroydFranceIoni Bowcher NEW
Darci G PerinRussiaIvan Magalhaes QUALIFIED
Deepesh Y StensethSpainBernardo Dominic QUALIFIED
Nicolas W MorascaUnited KingdomIvan Magalhaes UNQUALIFIED
Faith D VenereFranceOnyama Limba NEGOTIATION
Darci N MarrierRussiaElwin Sharvill NEW
Isabel H IturbideJapanAnna Fali RENEWAL
Horizontal
NameCountryRepresentativeStatus
Ricardo L PoquetteJapanAsiya Javayant RENEWAL
Leon D WhobreyGermanyAnna Fali PROPOSAL
Tony M GlickIndiaStephen Shaw NEW
Aditya K MarrierSpainAsiya Javayant NEW
Kadeem G BriddickIndiaOnyama Limba QUALIFIED
Alejandro O CaldareraItalyStephen Shaw PROPOSAL
Wickens O MarrierAustraliaXuxue Feng NEW
Faith A MarrierBrazilAnna Fali NEW
Antonio C AmigonUnited KingdomStephen Shaw PROPOSAL
Aruna G AlbaresSpainIoni Bowcher NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Jefferson Z FlosiJapan2026-07-25Morlong Associates QUALIFIED5Anna Fali
1001Stacey P PoquetteItaly2026-07-22Rousseaux, Michael Esq RENEWAL91Xuxue Feng
1002Costa O PaprockiItaly2026-07-18Printing Dimensions UNQUALIFIED39Xuxue Feng
1003Tony S NestleSpain2026-07-17Commercial Press QUALIFIED18Xuxue Feng
1004Emily N GauchoArgentina2026-07-17Benton, John B Jr NEW17Elwin Sharvill
1005James X ShinkoArgentina2026-07-31Rangoni Of Florence UNQUALIFIED72Ivan Magalhaes
1006Aditya Y PaprockiUnited Kingdom2026-07-07Feiner Bros QUALIFIED51Anna Fali
1007Alejandro F MorascaBrazil2026-07-26Rousseaux, Michael Esq RENEWAL11Onyama Limba
1008David X VenereGermany2026-07-08King, Christopher A Esq QUALIFIED7Elwin Sharvill
1009Johnson B FigeroaAustralia2026-08-01Chanay, Jeffrey A Esq UNQUALIFIED69Elwin Sharvill
1010Julie E ShinkoUnited Kingdom2026-07-17Morlong Associates NEGOTIATION73Ivan Magalhaes
1011Silvio Z BologniaSpain2026-07-20Morlong Associates RENEWAL60Stephen Shaw
1012Jefferson L VenereItaly2026-07-15Truhlar And Truhlar Attys QUALIFIED76Amy Elsner
1013Jennifer M ButtAustralia2026-07-13Chemel, James L Cpa NEW71Amy Elsner
1014Chavez C WhobreyGermany2026-08-01Printing Dimensions NEGOTIATION21Asiya Javayant
1015Misaki C MaletArgentina2026-07-27Dorl, James J Esq QUALIFIED11Stephen Shaw
1016Murillo L StensethUnited Kingdom2026-07-23Rousseaux, Michael Esq UNQUALIFIED59Stephen Shaw
1017Aika D GlickFrance2026-07-09Commercial Press UNQUALIFIED60Xuxue Feng
1018Darci P BologniaAustralia2026-07-18Commercial Press RENEWAL58Ivan Magalhaes
1019Kaitlin W FollerUnited Kingdom2026-07-19Dorl, James J Esq PROPOSAL4Elwin Sharvill
1020Alejandro B WieserCanada2026-07-26Truhlar And Truhlar Attys RENEWAL78Amy Elsner
1021Darci F BowleyAustralia2026-07-20Morlong Associates NEGOTIATION56Elwin Sharvill
1022Leja M FerenczIndia2026-07-17Chapman, Ross E Esq NEGOTIATION95Ivan Magalhaes
1023Darci M WieserCanada2026-07-25Feltz Printing Service NEGOTIATION14Onyama Limba
1024Jeanfrancois Z SergiGermany2026-07-17Chanay, Jeffrey A Esq RENEWAL31Xuxue Feng
1025Jennifer Y KuskoBrazil2026-07-27Chanay, Jeffrey A Esq PROPOSAL8Onyama Limba
1026Leja E ButtBrazil2026-07-19Rousseaux, Michael Esq RENEWAL29Onyama Limba
1027Antonio P CampainFrance2026-08-02Chemel, James L Cpa PROPOSAL56Xuxue Feng
1028Aditya F KolmetzArgentina2026-07-20Dorl, James J Esq NEGOTIATION45Ioni Bowcher
1029Antonio M PoquetteUnited Kingdom2026-08-02Rangoni Of Florence RENEWAL30Elwin Sharvill
1030Ashley O ChuiGermany2026-07-21Chapman, Ross E Esq NEGOTIATION76Ivan Magalhaes
1031Stacey D FollerItaly2026-07-31Morlong Associates QUALIFIED92Elwin Sharvill
1032Kadeem I OstroskyFrance2026-07-24Commercial Press RENEWAL85Asiya Javayant
1033James Q OldroydIndia2026-07-18Commercial Press PROPOSAL99Ioni Bowcher
1034Adams Q GarufiSpain2026-07-21Truhlar And Truhlar Attys NEGOTIATION99Onyama Limba
1035Costa T SlusarskiJapan2026-07-20Feltz Printing Service NEW54Xuxue Feng
1036Chavez W NickaItaly2026-07-08Feltz Printing Service UNQUALIFIED74Asiya Javayant
1037Aika C WhobreyGermany2026-07-06Commercial Press NEW10Asiya Javayant
1038Darci Y SaylorsGermany2026-07-05Truhlar And Truhlar Attys NEGOTIATION58Ivan Magalhaes
1039Maisha X RutaRussia2026-07-29Printing Dimensions NEW33Bernardo Dominic
1040Aika B FerenczArgentina2026-07-21Feiner Bros QUALIFIED3Amy Elsner
1041Deepesh T PoquetteIndia2026-07-29Chapman, Ross E Esq NEW23Stephen Shaw
1042Morrow N SergiItaly2026-07-18Dorl, James J Esq RENEWAL58Ioni Bowcher
1043Kaitlin M PaprockiCanada2026-07-10Printing Dimensions NEW46Elwin Sharvill
1044Jefferson Y ChuiUnited Kingdom2026-07-27Chanay, Jeffrey A Esq UNQUALIFIED67Asiya Javayant
1045Misaki B MaletAustralia2026-07-18Dorl, James J Esq UNQUALIFIED32Ivan Magalhaes
1046Jones M OldroydCanada2026-07-17Morlong Associates PROPOSAL89Ioni Bowcher
1047Juan I BowleyArgentina2026-07-09Feltz Printing Service PROPOSAL87Ioni Bowcher
1048Aika I VenereGermany2026-07-28Chapman, Ross E Esq NEW24Elwin Sharvill
1049Stacey T RoysterRussia2026-07-21Dorl, James J Esq NEGOTIATION22Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Chavez R RoysterBrazilAmy Elsner QUALIFIED
Faith S WieserArgentinaAmy Elsner RENEWAL
Emily U PaprockiRussiaElwin Sharvill NEW
Jones M MaletBrazilElwin Sharvill NEGOTIATION
Jennifer T VenereGermanyAsiya Javayant NEW
Maisha N ShinkoRussiaStephen Shaw RENEWAL
Ricardo K GillianUnited KingdomStephen Shaw UNQUALIFIED
Jennifer F RutaCanadaStephen Shaw PROPOSAL
Misaki A VocelkaBrazilBernardo Dominic NEGOTIATION
Julie B MacleadItalyAnna Fali PROPOSAL
Cody D GillianSpainStephen Shaw NEW
Deepesh P RoysterJapanOnyama Limba PROPOSAL
David K AlbaresCanadaIoni Bowcher NEW
Aditya S VenereItalyIoni Bowcher NEGOTIATION
Morrow J ButtRussiaAmy Elsner NEW
Jones O PoquetteItalyStephen Shaw UNQUALIFIED
Juan K FerenczIndiaAnna Fali UNQUALIFIED
Jennifer W GarufiArgentinaBernardo Dominic RENEWAL
Antonio V GillianArgentinaIvan Magalhaes NEGOTIATION
Salvatore H PoquetteGermanyAsiya Javayant QUALIFIED
Cody D GillianArgentinaIoni Bowcher UNQUALIFIED
Aruna H PoquetteGermanyAmy Elsner UNQUALIFIED
Nicolas O GlickUnited KingdomIvan Magalhaes NEGOTIATION
Ashley M FollerBrazilXuxue Feng PROPOSAL
Faith N OstroskyCanadaStephen Shaw PROPOSAL
James O VocelkaArgentinaOnyama Limba PROPOSAL
Deepesh S MaletItalyAmy Elsner UNQUALIFIED
Morrow R WhobreySpainXuxue Feng NEGOTIATION
James D KolmetzBrazilStephen Shaw PROPOSAL
Octavia H BowleyIndiaAsiya Javayant RENEWAL
Kadeem Z NickaJapanXuxue Feng NEW
Kadeem X BowleyCanadaBernardo Dominic NEW
Adams D AmigonUnited KingdomAnna Fali PROPOSAL
Kadeem F OstroskySpainXuxue Feng RENEWAL
Wickens B SchemmerArgentinaAsiya Javayant RENEWAL
Silvio N AmigonArgentinaOnyama Limba RENEWAL
Maria T ButtArgentinaXuxue Feng NEGOTIATION
Sinclair X TollnerFranceAsiya Javayant NEGOTIATION
Faith Z RutaArgentinaStephen Shaw RENEWAL
Jeanfrancois O NestleCanadaElwin Sharvill UNQUALIFIED
Tony H DarakjyAustraliaIvan Magalhaes NEW
Ashley S BologniaGermanyAmy Elsner RENEWAL
David X WhobreyAustraliaXuxue Feng NEW
Smith W GlickArgentinaIoni Bowcher PROPOSAL
Mujtaba P WieserCanadaOnyama Limba NEW
Francesco J MorascaIndiaAsiya Javayant NEW
Alejandro E ShinkoUnited KingdomElwin Sharvill PROPOSAL
Nicolas N InouyeAustraliaBernardo Dominic PROPOSAL
Deepesh R FigeroaSpainStephen Shaw QUALIFIED
Cody Z MacleadIndiaStephen Shaw NEW
Frozen Columns
Name
Maisha S Foller
Maria G Saylors
Isabel B Schemmer
Tony Y Malet
Maisha V Nicka
Arvin W Albares
Jefferson N Tollner
Chavez Q Iturbide
Ricardo S Caldarera
Alejandro H Vocelka
Antonio W Butt
Clifford J Chui
Maisha E Iturbide
Jefferson T Poquette
Aditya A Stockham
Rodrigues S Wieser
Ivar V Malet
Kadeem M Paprocki
Mayumi P Caldarera
Alejandro A Kolmetz
Mayumi J Malet
Claire P Doe
Adams W Rulapaugh
Adams H Stenseth
Sinclair R Waycott
Darci F Bowley
Leja Q Tollner
Mujtaba F Shinko
Silvio E Briddick
Jennifer V Tollner
Juan H Iturbide
Jeanfrancois B Doe
Deepesh U Tollner
Costa K Malet
Misaki R Perin
Antonio K Shinko
Jeanfrancois K Bolognia
Munro K Slusarski
Ivar B Maclead
Francesco D Nestle
Chavez V Nestle
Clifford K Nestle
Faith Y Paprocki
Mujtaba D Butt
Munro W Gillian
Nicolas P Gaucho
Antonio R Stockham
Arvin T Iturbide
Wickens E Waycott
David Y Rulapaugh
IdCountryDate
1000Brazil2026-07-30
1001Japan2026-07-07
1002France2026-07-31
1003Spain2026-07-23
1004Argentina2026-07-15
1005Argentina2026-07-29
1006Argentina2026-07-27
1007Argentina2026-07-21
1008Russia2026-08-01
1009Argentina2026-07-06
1010Germany2026-08-01
1011Spain2026-07-20
1012Russia2026-07-13
1013Japan2026-07-17
1014Spain2026-07-24
1015Japan2026-07-15
1016Japan2026-07-30
1017Canada2026-07-16
1018United Kingdom2026-07-21
1019Argentina2026-07-25
1020Argentina2026-08-03
1021Brazil2026-07-10
1022France2026-07-23
1023Argentina2026-07-07
1024Argentina2026-07-27
1025Australia2026-07-08
1026Brazil2026-07-17
1027France2026-07-17
1028Germany2026-07-16
1029Japan2026-07-22
1030Germany2026-07-28
1031Japan2026-07-26
1032Spain2026-07-18
1033Spain2026-08-03
1034Germany2026-07-25
1035Brazil2026-07-22
1036Germany2026-07-19
1037India2026-07-05
1038Russia2026-07-29
1039Brazil2026-07-24
1040United Kingdom2026-07-06
1041Spain2026-07-06
1042Canada2026-07-19
1043France2026-07-31
1044Spain2026-08-01
1045Italy2026-07-18
1046Brazil2026-07-06
1047Australia2026-07-05
1048Brazil2026-07-11
1049Spain2026-07-28

On-Demand Data

NameIdCountryDate
Cody T Rim1000Canada2026-07-13
Arvin E Nestle1001France2026-07-20
Emily K Butt1002Brazil2026-07-20
Alejandro F Venere1003Italy2026-07-15
Juan A Garufi1004Argentina2026-07-16
Isabel R Malet1005India2026-07-21
Rodrigues Q Nicka1006Brazil2026-07-21
Arvin R Morasca1007Argentina2026-07-30
Mujtaba A Venere1008France2026-07-31
Julie O Sergi1009Brazil2026-07-14
Aruna S Malet1010Brazil2026-07-10
Wickens I Briddick1011Germany2026-08-02
Aditya P Whobrey1012Canada2026-07-15
Smith V Saylors1013Brazil2026-07-20
Antonio B Royster1014Spain2026-07-07
Wickens N Chui1015Spain2026-07-06
Leon H Wieser1016Spain2026-07-09
Claire T Saylors1017India2026-07-26
Julie L Caudy1018Germany2026-07-19
Stacey C Morasca1019Brazil2026-07-12
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
David H StensethGermanyStephen Shaw RENEWAL
Darci O GillianCanadaStephen Shaw UNQUALIFIED
Isabel D StockhamFranceStephen Shaw UNQUALIFIED
Rodrigues Q ButtJapanStephen Shaw NEGOTIATION
Kaitlin V WhobreyCanadaStephen Shaw PROPOSAL
Ivar L WhobreySpainAsiya Javayant NEGOTIATION
Salvatore I RimCanadaXuxue Feng PROPOSAL
Misaki S TollnerGermanyIvan Magalhaes NEW
Wickens K GillianCanadaIoni Bowcher RENEWAL
Aruna L SlusarskiCanadaAsiya Javayant UNQUALIFIED
Maria K MacleadCanadaAnna Fali NEW
Costa B MorascaItalyIoni Bowcher PROPOSAL
Julie D CampainUnited KingdomOnyama Limba UNQUALIFIED
Jones I MaletJapanAmy Elsner UNQUALIFIED
Darci G IturbideCanadaXuxue Feng PROPOSAL
Arvin V RimIndiaAmy Elsner NEGOTIATION
James C VenereCanadaAnna Fali PROPOSAL
Sinclair G ButtCanadaIvan Magalhaes NEGOTIATION
Aruna Z VenereArgentinaOnyama Limba PROPOSAL
Johnson Q SaylorsFranceIoni Bowcher RENEWAL
Sinclair D KolmetzArgentinaAsiya Javayant QUALIFIED
Arvin M GauchoSpainElwin Sharvill NEW
Ricardo X RulapaughGermanyIoni Bowcher PROPOSAL
Chavez K ShinkoJapanAsiya Javayant NEGOTIATION
Leon J StensethIndiaAnna Fali RENEWAL
Munro R FlosiGermanyStephen Shaw RENEWAL
Leja Q IturbideCanadaElwin Sharvill UNQUALIFIED
Darci J SchemmerSpainOnyama Limba NEGOTIATION
Cody L VenereJapanAnna Fali UNQUALIFIED
David Z FerenczAustraliaBernardo Dominic PROPOSAL
Johnson V DilliardBrazilAmy Elsner NEGOTIATION
Jefferson G NestleIndiaAnna Fali QUALIFIED
Francesco O GarufiCanadaAnna Fali NEGOTIATION
Aruna J RutaIndiaAsiya Javayant UNQUALIFIED
Rodrigues T NickaGermanyElwin Sharvill NEW
Clifford U WaycottUnited KingdomAnna Fali QUALIFIED
Ricardo F PerinBrazilIvan Magalhaes NEW
Jones W WieserUnited KingdomBernardo Dominic QUALIFIED
Ivar M WhobreyArgentinaIvan Magalhaes NEW
Octavia J VenereCanadaXuxue Feng PROPOSAL

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