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
Morrow A MarrierBrazilXuxue Feng QUALIFIED
David H WhobreyFranceOnyama Limba UNQUALIFIED
Misaki V InouyeIndiaIvan Magalhaes NEGOTIATION
Emily C CampainItalyAsiya Javayant RENEWAL
Emily N CaudyItalyAnna Fali NEW
Johnson I RulapaughJapanAnna Fali UNQUALIFIED
David J SergiItalyIoni Bowcher QUALIFIED
Clifford W WaycottFranceElwin Sharvill QUALIFIED
Jones M FollerRussiaIvan Magalhaes QUALIFIED
Leja W FollerBrazilAsiya Javayant RENEWAL
Johnson S GlickAustraliaAsiya Javayant NEW
Aika I RulapaughCanadaStephen Shaw UNQUALIFIED
Smith J BowleyCanadaStephen Shaw NEW
Greenwood I NickaUnited KingdomAnna Fali QUALIFIED
Silvio P ButtIndiaXuxue Feng RENEWAL
Faith H FlosiCanadaIvan Magalhaes NEGOTIATION
Salvatore C RutaArgentinaAnna Fali NEGOTIATION
Nicolas W DoeUnited KingdomStephen Shaw QUALIFIED
Munro G KuskoFranceStephen Shaw NEW
Deepesh R StockhamCanadaElwin Sharvill NEGOTIATION
Munro K OldroydJapanIoni Bowcher NEW
Emily O RoysterFranceAsiya Javayant PROPOSAL
Aika X MaletArgentinaAsiya Javayant RENEWAL
Juan X DarakjyBrazilAmy Elsner UNQUALIFIED
Juan T VenereSpainElwin Sharvill NEGOTIATION
Ricardo G FlosiItalyAnna Fali QUALIFIED
Leon Y ChuiJapanOnyama Limba NEW
Johnson R FigeroaJapanStephen Shaw PROPOSAL
Juan Z BowleyIndiaAnna Fali QUALIFIED
Aruna F SergiUnited KingdomBernardo Dominic NEW
Cody X SergiItalyAsiya Javayant NEGOTIATION
Johnson D CaldareraIndiaIvan Magalhaes RENEWAL
Arvin J FlosiUnited KingdomAmy Elsner NEGOTIATION
Aruna M WaycottCanadaBernardo Dominic PROPOSAL
Nicolas M AmigonItalyIvan Magalhaes QUALIFIED
James Y GarufiIndiaAsiya Javayant NEGOTIATION
Munro F BowleyUnited KingdomOnyama Limba NEW
Jefferson A IturbideSpainIvan Magalhaes RENEWAL
Darci U FigeroaIndiaElwin Sharvill RENEWAL
Salvatore R VocelkaGermanyOnyama Limba RENEWAL
Tony N FigeroaUnited KingdomBernardo Dominic NEW
Ashley D InouyeFranceIvan Magalhaes UNQUALIFIED
Arvin J PerinAustraliaAmy Elsner UNQUALIFIED
Costa O InouyeIndiaXuxue Feng RENEWAL
Aditya F KolmetzCanadaBernardo Dominic QUALIFIED
Octavia V CaudyIndiaAmy Elsner NEGOTIATION
Costa P RulapaughAustraliaIvan Magalhaes UNQUALIFIED
Smith M BriddickRussiaStephen Shaw UNQUALIFIED
Silvio Y MorascaRussiaIvan Magalhaes NEGOTIATION
Leon K GlickJapanAnna Fali NEGOTIATION
Horizontal
NameCountryRepresentativeStatus
Rodrigues D SaylorsSpainAsiya Javayant UNQUALIFIED
Jeanfrancois H InouyeSpainIvan Magalhaes PROPOSAL
Kaitlin X PaprockiFranceBernardo Dominic NEGOTIATION
Cody B GlickSpainStephen Shaw RENEWAL
Maisha E VocelkaBrazilAmy Elsner NEW
Greenwood L SergiItalyAmy Elsner RENEWAL
Darci M GauchoAustraliaIvan Magalhaes NEW
Darci B AlbaresItalyIvan Magalhaes UNQUALIFIED
Deepesh M StensethGermanyElwin Sharvill QUALIFIED
Sinclair M NickaJapanAsiya Javayant NEW
Horizontal and Vertical
IdNameCountryDateCompanyStatusActivityRepresentative
1000Rodrigues G PoquetteSpain2026-08-02Rousseaux, Michael Esq NEGOTIATION72Bernardo Dominic
1001Ricardo H MaletRussia2026-08-08Chemel, James L Cpa NEW65Ivan Magalhaes
1002Smith X OldroydItaly2026-07-17Dorl, James J Esq PROPOSAL96Elwin Sharvill
1003Clifford V SaylorsGermany2026-08-05Printing Dimensions PROPOSAL20Onyama Limba
1004Julie F VenereGermany2026-07-14Buckley Miller Wright RENEWAL7Bernardo Dominic
1005Mujtaba M GarufiItaly2026-07-21Buckley Miller Wright NEGOTIATION35Xuxue Feng
1006Octavia E SergiGermany2026-07-31Truhlar And Truhlar Attys PROPOSAL15Elwin Sharvill
1007Julie E DarakjyItaly2026-07-30Feiner Bros QUALIFIED50Bernardo Dominic
1008Maisha C RoysterArgentina2026-07-14Rangoni Of Florence RENEWAL76Elwin Sharvill
1009Isabel D CampainRussia2026-07-23Feiner Bros NEGOTIATION98Elwin Sharvill
1010Wickens Q BologniaIndia2026-08-01King, Christopher A Esq QUALIFIED57Ioni Bowcher
1011Ivar H PoquetteUnited Kingdom2026-08-08Feltz Printing Service NEW72Elwin Sharvill
1012Ivar J BriddickFrance2026-07-31Benton, John B Jr PROPOSAL1Bernardo Dominic
1013Julie G BowleySpain2026-07-30Buckley Miller Wright RENEWAL76Amy Elsner
1014Juan U GauchoSpain2026-08-10King, Christopher A Esq QUALIFIED36Bernardo Dominic
1015Kadeem N IturbideFrance2026-08-06Feltz Printing Service UNQUALIFIED10Bernardo Dominic
1016Clifford Q NickaSpain2026-07-28King, Christopher A Esq QUALIFIED81Ioni Bowcher
1017Deepesh J ChuiIndia2026-07-24Rousseaux, Michael Esq RENEWAL76Amy Elsner
1018Morrow Z SaylorsIndia2026-08-03Feltz Printing Service NEGOTIATION68Ioni Bowcher
1019Stacey N PoquetteRussia2026-07-13Rangoni Of Florence NEW62Amy Elsner
1020Jones B GauchoFrance2026-07-25Buckley Miller Wright NEW77Elwin Sharvill
1021Jefferson S IturbideRussia2026-08-03Morlong Associates RENEWAL73Amy Elsner
1022Octavia H CaudyArgentina2026-07-12Commercial Press UNQUALIFIED82Stephen Shaw
1023Juan N StensethItaly2026-07-30Rangoni Of Florence QUALIFIED10Onyama Limba
1024Rodrigues V RoysterJapan2026-07-30Feiner Bros RENEWAL34Amy Elsner
1025Jones U StockhamCanada2026-07-19Feiner Bros PROPOSAL4Stephen Shaw
1026Salvatore N CampainUnited Kingdom2026-07-15Buckley Miller Wright UNQUALIFIED90Asiya Javayant
1027Murillo H WaycottSpain2026-08-10Feltz Printing Service NEW89Xuxue Feng
1028Arvin L WieserRussia2026-07-17Chanay, Jeffrey A Esq PROPOSAL19Ioni Bowcher
1029Sinclair R VenereArgentina2026-08-06Chapman, Ross E Esq NEGOTIATION22Xuxue Feng
1030Leon V AmigonSpain2026-07-21Rangoni Of Florence NEW0Anna Fali
1031Kaitlin C CaldareraAustralia2026-08-10Benton, John B Jr PROPOSAL9Onyama Limba
1032Kadeem M WaycottItaly2026-08-03Rangoni Of Florence UNQUALIFIED40Anna Fali
1033Aditya R GillianItaly2026-07-24Chapman, Ross E Esq RENEWAL83Onyama Limba
1034Ashley E DoeRussia2026-07-27Truhlar And Truhlar Attys NEGOTIATION11Elwin Sharvill
1035Claire Z AlbaresIndia2026-07-31Chapman, Ross E Esq PROPOSAL27Asiya Javayant
1036Maria K PerinArgentina2026-08-07Chapman, Ross E Esq RENEWAL49Asiya Javayant
1037Tony I CaudyCanada2026-08-10Chapman, Ross E Esq NEW42Amy Elsner
1038Arvin A TollnerJapan2026-07-23Truhlar And Truhlar Attys NEW63Anna Fali
1039Jefferson U DarakjyAustralia2026-07-17Printing Dimensions PROPOSAL83Asiya Javayant
1040Aika C ChuiAustralia2026-08-07Truhlar And Truhlar Attys PROPOSAL46Ivan Magalhaes
1041Aruna N MarrierIndia2026-07-23Dorl, James J Esq RENEWAL55Xuxue Feng
1042Ivar U CaldareraSpain2026-07-25Printing Dimensions NEGOTIATION90Xuxue Feng
1043Mujtaba Q StockhamJapan2026-07-24Feltz Printing Service PROPOSAL61Anna Fali
1044Arvin C ShinkoIndia2026-07-18Benton, John B Jr NEW60Anna Fali
1045David X DoeItaly2026-07-24King, Christopher A Esq NEGOTIATION26Elwin Sharvill
1046Juan R RutaFrance2026-08-02Feiner Bros QUALIFIED7Bernardo Dominic
1047James Z PerinSpain2026-07-30Buckley Miller Wright NEW58Elwin Sharvill
1048Juan X PerinIndia2026-07-22Chanay, Jeffrey A Esq NEW46Amy Elsner
1049Deepesh M TollnerArgentina2026-08-04Truhlar And Truhlar Attys NEW95Onyama Limba
Frozen Rows
NameCountryRepresentativeStatus
Kaitlin X RimAustraliaAmy Elsner QUALIFIED
Aruna G GillianArgentinaStephen Shaw UNQUALIFIED
Jefferson A WieserFranceOnyama Limba PROPOSAL
Emily C IturbideSpainAmy Elsner PROPOSAL
Mujtaba K WieserUnited KingdomStephen Shaw UNQUALIFIED
Maisha F ButtItalyXuxue Feng RENEWAL
Silvio O WieserCanadaBernardo Dominic UNQUALIFIED
Clifford E SaylorsIndiaIvan Magalhaes UNQUALIFIED
Maria R SaylorsIndiaAnna Fali NEW
Greenwood H RoysterRussiaXuxue Feng PROPOSAL
Emily G MaletFranceIoni Bowcher NEGOTIATION
Jones V ShinkoSpainIvan Magalhaes NEGOTIATION
Arvin I MarrierSpainOnyama Limba PROPOSAL
Isabel U SlusarskiCanadaElwin Sharvill PROPOSAL
Maria S SlusarskiIndiaIvan Magalhaes QUALIFIED
Jefferson L IturbideJapanXuxue Feng NEGOTIATION
Kadeem G DilliardJapanAsiya Javayant PROPOSAL
Octavia Z MacleadJapanAnna Fali NEGOTIATION
Maisha B OldroydItalyStephen Shaw NEGOTIATION
Morrow O GlickBrazilOnyama Limba NEGOTIATION
Mujtaba D DoeCanadaAnna Fali RENEWAL
Salvatore U WieserIndiaStephen Shaw NEW
Jennifer O KuskoGermanyAnna Fali PROPOSAL
Ashley D WaycottRussiaIoni Bowcher NEW
Munro S VenereIndiaIoni Bowcher NEGOTIATION
Smith C DilliardItalyIoni Bowcher RENEWAL
Aditya Y NickaFranceAnna Fali QUALIFIED
Izzy M SchemmerRussiaOnyama Limba PROPOSAL
Jeanfrancois F MaletItalyStephen Shaw PROPOSAL
Claire A InouyeItalyOnyama Limba RENEWAL
Darci P BowleyIndiaAnna Fali QUALIFIED
Aruna P FerenczFranceXuxue Feng NEW
Jeanfrancois T MorascaFranceAsiya Javayant NEGOTIATION
Isabel E MacleadRussiaIvan Magalhaes UNQUALIFIED
Sinclair B WhobreyBrazilAnna Fali RENEWAL
Darci B BowleyFranceAnna Fali NEW
Octavia Y VenereBrazilIvan Magalhaes PROPOSAL
Jeanfrancois Q FigeroaItalyAsiya Javayant UNQUALIFIED
Tony V ShinkoArgentinaElwin Sharvill QUALIFIED
Tony R WhobreyAustraliaAsiya Javayant NEW
Julie R RimItalyStephen Shaw PROPOSAL
Faith P MaletArgentinaAmy Elsner RENEWAL
Clifford N StensethGermanyAmy Elsner PROPOSAL
Salvatore P FerenczIndiaElwin Sharvill NEGOTIATION
Mujtaba Q MaletCanadaXuxue Feng PROPOSAL
Emily L FollerBrazilOnyama Limba RENEWAL
Wickens D OstroskyIndiaIvan Magalhaes QUALIFIED
Deepesh E MarrierGermanyAnna Fali QUALIFIED
Julie W BowleyCanadaElwin Sharvill NEW
Johnson W PoquetteBrazilIoni Bowcher QUALIFIED
Frozen Columns
Name
Costa Q Ferencz
Arvin H Oldroyd
Johnson X Oldroyd
Darci G Poquette
Julie K Rulapaugh
Jones M Malet
Nicolas C Inouye
Octavia B Glick
Leon K Stenseth
Sinclair M Schemmer
Aruna L Schemmer
Stacey U Wieser
James B Nestle
Smith M Malet
Murillo F Tollner
Sinclair X Wieser
Morrow H Doe
James C Royster
Costa F Maclead
Kaitlin R Albares
Ashley E Morasca
Juan O Ruta
Maisha X Stenseth
Emily V Sergi
Silvio W Darakjy
Tony V Ferencz
Faith C Ferencz
Rodrigues T Foller
Adams G Flosi
Jefferson M Schemmer
Deepesh Z Flosi
Octavia K Inouye
Antonio P Waycott
Munro H Foller
Silvio C Stockham
Alejandro M Kolmetz
Izzy U Royster
Nicolas F Iturbide
Antonio Z Ferencz
Claire I Bolognia
Murillo L Kusko
Ricardo Y Morasca
David O Briddick
Mayumi Q Figeroa
Leon W Vocelka
Munro V Garufi
Isabel O Caldarera
Greenwood P Slusarski
Juan D Poquette
Chavez D Briddick
IdCountryDate
1000Italy2026-08-07
1001Italy2026-08-04
1002Argentina2026-07-26
1003Spain2026-07-29
1004Russia2026-07-30
1005Russia2026-07-12
1006India2026-07-23
1007Canada2026-08-03
1008India2026-07-18
1009India2026-07-20
1010Australia2026-08-02
1011Russia2026-07-13
1012Russia2026-07-27
1013Brazil2026-07-27
1014Spain2026-08-09
1015Spain2026-07-12
1016Australia2026-07-14
1017United Kingdom2026-08-04
1018United Kingdom2026-07-23
1019United Kingdom2026-07-13
1020Russia2026-07-30
1021Germany2026-08-09
1022India2026-07-22
1023Germany2026-07-25
1024Russia2026-07-17
1025France2026-07-20
1026Italy2026-07-12
1027India2026-07-17
1028Brazil2026-08-04
1029Australia2026-07-15
1030Australia2026-08-03
1031France2026-08-01
1032Australia2026-07-25
1033India2026-08-07
1034Spain2026-08-03
1035Brazil2026-07-15
1036Italy2026-07-28
1037Brazil2026-08-03
1038Russia2026-08-01
1039Germany2026-07-24
1040Australia2026-07-17
1041Spain2026-07-28
1042Japan2026-08-02
1043Russia2026-08-06
1044United Kingdom2026-07-29
1045Germany2026-07-28
1046France2026-08-03
1047Germany2026-08-07
1048Japan2026-07-31
1049Russia2026-08-06

On-Demand Data

NameIdCountryDate
Ivar D Morasca1000Spain2026-08-01
Aditya B Paprocki1001United Kingdom2026-07-21
Ivar G Kolmetz1002Spain2026-08-10
Ivar O Kusko1003Spain2026-07-23
Leon P Saylors1004Argentina2026-08-08
Smith L Nicka1005Spain2026-08-10
Greenwood P Dilliard1006Argentina2026-07-30
Juan F Briddick1007India2026-07-15
Sinclair R Poquette1008France2026-07-19
Jefferson Z Whobrey1009Brazil2026-08-03
Aditya L Oldroyd1010France2026-07-24
Mayumi L Vocelka1011Brazil2026-07-26
Silvio X Slusarski1012Brazil2026-08-07
Silvio U Shinko1013United Kingdom2026-07-19
Murillo V Caudy1014United Kingdom2026-07-24
Morrow L Bolognia1015France2026-07-18
Izzy V Stenseth1016Italy2026-07-31
Kaitlin S Perin1017Australia2026-07-31
Misaki P Saylors1018Germany2026-07-29
Antonio F Rulapaugh1019United Kingdom2026-07-20
Virtual Scrolling - 20000 Rows
NameCountryRepresentativeStatus
Alejandro D InouyeSpainOnyama Limba NEW
Deepesh P NestleArgentinaAmy Elsner QUALIFIED
Maisha I CampainArgentinaIvan Magalhaes PROPOSAL
Antonio F AmigonSpainAsiya Javayant UNQUALIFIED
Ashley H GlickAustraliaAsiya Javayant NEW
Ashley T FerenczArgentinaAnna Fali QUALIFIED
Aruna M GlickAustraliaXuxue Feng QUALIFIED
Tony W GlickUnited KingdomAmy Elsner QUALIFIED
Salvatore H StensethRussiaIoni Bowcher QUALIFIED
Aditya K BriddickRussiaIvan Magalhaes NEW
Julie I NickaFranceElwin Sharvill UNQUALIFIED
James Q RulapaughCanadaAsiya Javayant NEW
Darci C ButtRussiaStephen Shaw NEW
Leja E MaletArgentinaAnna Fali RENEWAL
Sinclair Q AlbaresFranceOnyama Limba NEGOTIATION
Faith N KuskoSpainElwin Sharvill UNQUALIFIED
Jones V CampainAustraliaXuxue Feng PROPOSAL
Morrow E RimAustraliaAsiya Javayant UNQUALIFIED
Jones Y SaylorsGermanyIvan Magalhaes NEGOTIATION
Cody X BologniaJapanIoni Bowcher QUALIFIED
Jennifer V ButtAustraliaXuxue Feng UNQUALIFIED
Isabel M RutaAustraliaBernardo Dominic NEW
Kaitlin F WhobreyAustraliaBernardo Dominic RENEWAL
Ricardo I MacleadIndiaIoni Bowcher UNQUALIFIED
Aruna W SergiJapanBernardo Dominic QUALIFIED
Julie E ChuiItalyAsiya Javayant RENEWAL
Juan Z StockhamCanadaBernardo Dominic NEW
Isabel S GauchoSpainIvan Magalhaes PROPOSAL
Jones Q ButtSpainElwin Sharvill PROPOSAL
Mujtaba O WieserBrazilIoni Bowcher RENEWAL
Ricardo X FerenczCanadaOnyama Limba UNQUALIFIED
Octavia U RulapaughFranceAsiya Javayant RENEWAL
Leja K ShinkoBrazilAnna Fali NEGOTIATION
Octavia U RutaJapanElwin Sharvill QUALIFIED
Chavez M NickaRussiaIoni Bowcher PROPOSAL
Jones E VocelkaAustraliaIoni Bowcher RENEWAL
Sinclair Y FigeroaSpainIoni Bowcher UNQUALIFIED
Clifford B WhobreyRussiaXuxue Feng RENEWAL
Murillo T OldroydGermanyAmy Elsner UNQUALIFIED
Wickens D FollerGermanyAnna Fali 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>